• Jeff Layton's avatar
    SUNRPC: allow svc_recv to break out of 500ms sleep when alloc_page fails · 7b54fe61
    Jeff Layton authored
    svc_recv() calls alloc_page(), and if it fails it does a 500ms
    uninterruptible sleep and then reattempts. There doesn't seem to be any
    real reason for this to be uninterruptible, so change it to an
    interruptible sleep. Also check for kthread_stop() and signalled() after
    setting the task state to avoid races that might lead to sleeping after
    kthread_stop() wakes up the task.
    
    I've done some very basic smoke testing with this, but obviously it's
    hard to test the actual changes since this all depends on an
    alloc_page() call failing.
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    7b54fe61
svc_xprt.c 28.8 KB