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 2245bef50f37..9a521fb39869 100644 --- a/fs/nfs/callback.c +++ b/fs/nfs/callback.c | |||
@@ -72,7 +72,7 @@ out_err: | |||
72 | static int | 72 | static int |
73 | nfs4_callback_svc(void *vrqstp) | 73 | nfs4_callback_svc(void *vrqstp) |
74 | { | 74 | { |
75 | int err, preverr = 0; | 75 | int err; |
76 | struct svc_rqst *rqstp = vrqstp; | 76 | struct svc_rqst *rqstp = vrqstp; |
77 | 77 | ||
78 | set_freezable(); | 78 | set_freezable(); |
@@ -82,20 +82,8 @@ nfs4_callback_svc(void *vrqstp) | |||
82 | * Listen for a request on the socket | 82 | * Listen for a request on the socket |
83 | */ | 83 | */ |
84 | err = svc_recv(rqstp, MAX_SCHEDULE_TIMEOUT); | 84 | err = svc_recv(rqstp, MAX_SCHEDULE_TIMEOUT); |
85 | if (err == -EAGAIN || err == -EINTR) { | 85 | if (err == -EAGAIN || err == -EINTR) |
86 | preverr = err; | ||
87 | continue; | 86 | continue; |
88 | } | ||
89 | if (err < 0) { | ||
90 | if (err != preverr) { | ||
91 | printk(KERN_WARNING "NFS: %s: unexpected error " | ||
92 | "from svc_recv (%d)\n", __func__, err); | ||
93 | preverr = err; | ||
94 | } | ||
95 | schedule_timeout_uninterruptible(HZ); | ||
96 | continue; | ||
97 | } | ||
98 | preverr = err; | ||
99 | svc_process(rqstp); | 87 | svc_process(rqstp); |
100 | } | 88 | } |
101 | return 0; | 89 | return 0; |