diff options
Diffstat (limited to 'fs/nfs/callback.c')
-rw-r--r-- | fs/nfs/callback.c | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c index 4c8459e5bdee..d9e2a1880783 100644 --- a/fs/nfs/callback.c +++ b/fs/nfs/callback.c | |||
@@ -45,7 +45,7 @@ unsigned short nfs_callback_tcpport6; | |||
45 | static int | 45 | static int |
46 | nfs4_callback_svc(void *vrqstp) | 46 | nfs4_callback_svc(void *vrqstp) |
47 | { | 47 | { |
48 | int err, preverr = 0; | 48 | int err; |
49 | struct svc_rqst *rqstp = vrqstp; | 49 | struct svc_rqst *rqstp = vrqstp; |
50 | 50 | ||
51 | set_freezable(); | 51 | set_freezable(); |
@@ -55,20 +55,8 @@ nfs4_callback_svc(void *vrqstp) | |||
55 | * Listen for a request on the socket | 55 | * Listen for a request on the socket |
56 | */ | 56 | */ |
57 | err = svc_recv(rqstp, MAX_SCHEDULE_TIMEOUT); | 57 | err = svc_recv(rqstp, MAX_SCHEDULE_TIMEOUT); |
58 | if (err == -EAGAIN || err == -EINTR) { | 58 | if (err == -EAGAIN || err == -EINTR) |
59 | preverr = err; | ||
60 | continue; | 59 | continue; |
61 | } | ||
62 | if (err < 0) { | ||
63 | if (err != preverr) { | ||
64 | printk(KERN_WARNING "NFS: %s: unexpected error " | ||
65 | "from svc_recv (%d)\n", __func__, err); | ||
66 | preverr = err; | ||
67 | } | ||
68 | schedule_timeout_uninterruptible(HZ); | ||
69 | continue; | ||
70 | } | ||
71 | preverr = err; | ||
72 | svc_process(rqstp); | 60 | svc_process(rqstp); |
73 | } | 61 | } |
74 | return 0; | 62 | return 0; |