diff options
author | J. Bruce Fields <bfields@redhat.com> | 2012-08-17 21:47:53 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2012-08-21 17:42:00 -0400 |
commit | 5b444cc9a4c979aa0fa185c8ddca221462a34b7a (patch) | |
tree | 7a2b23292f279c31bacdabd95a709605e194137a /fs/nfs/callback.c | |
parent | 9f9d2ebe693a98d517257e1a39f61120b4473b96 (diff) |
svcrpc: remove handling of unknown errors from svc_recv
svc_recv() returns only -EINTR or -EAGAIN. If we really want to worry
about the case where it has a bug that causes it to return something
else, we could stick a WARN() in svc_recv. But it's silly to require
every caller to have all this boilerplate to handle that case.
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
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; |