Commit 5b444cc9a4c979aa0fa185c8ddca221462a34b7a
1 parent
9f9d2ebe69
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
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>
Showing 3 changed files with 5 additions and 40 deletions Side-by-side Diff
fs/lockd/svc.c
... | ... | @@ -126,7 +126,7 @@ |
126 | 126 | static int |
127 | 127 | lockd(void *vrqstp) |
128 | 128 | { |
129 | - int err = 0, preverr = 0; | |
129 | + int err = 0; | |
130 | 130 | struct svc_rqst *rqstp = vrqstp; |
131 | 131 | |
132 | 132 | /* try_to_freeze() is called from svc_recv() */ |
133 | 133 | |
... | ... | @@ -165,21 +165,8 @@ |
165 | 165 | * recvfrom routine. |
166 | 166 | */ |
167 | 167 | err = svc_recv(rqstp, timeout); |
168 | - if (err == -EAGAIN || err == -EINTR) { | |
169 | - preverr = err; | |
168 | + if (err == -EAGAIN || err == -EINTR) | |
170 | 169 | continue; |
171 | - } | |
172 | - if (err < 0) { | |
173 | - if (err != preverr) { | |
174 | - printk(KERN_WARNING "%s: unexpected error " | |
175 | - "from svc_recv (%d)\n", __func__, err); | |
176 | - preverr = err; | |
177 | - } | |
178 | - schedule_timeout_interruptible(HZ); | |
179 | - continue; | |
180 | - } | |
181 | - preverr = err; | |
182 | - | |
183 | 170 | dprintk("lockd: request from %s\n", |
184 | 171 | svc_print_addr(rqstp, buf, sizeof(buf))); |
185 | 172 |
fs/nfs/callback.c
... | ... | @@ -45,7 +45,7 @@ |
45 | 45 | static int |
46 | 46 | nfs4_callback_svc(void *vrqstp) |
47 | 47 | { |
48 | - int err, preverr = 0; | |
48 | + int err; | |
49 | 49 | struct svc_rqst *rqstp = vrqstp; |
50 | 50 | |
51 | 51 | set_freezable(); |
52 | 52 | |
... | ... | @@ -55,20 +55,8 @@ |
55 | 55 | * Listen for a request on the socket |
56 | 56 | */ |
57 | 57 | err = svc_recv(rqstp, MAX_SCHEDULE_TIMEOUT); |
58 | - if (err == -EAGAIN || err == -EINTR) { | |
59 | - preverr = err; | |
58 | + if (err == -EAGAIN || err == -EINTR) | |
60 | 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 | 60 | svc_process(rqstp); |
73 | 61 | } |
74 | 62 | return 0; |
fs/nfsd/nfssvc.c
... | ... | @@ -487,7 +487,7 @@ |
487 | 487 | nfsd(void *vrqstp) |
488 | 488 | { |
489 | 489 | struct svc_rqst *rqstp = (struct svc_rqst *) vrqstp; |
490 | - int err, preverr = 0; | |
490 | + int err; | |
491 | 491 | |
492 | 492 | /* Lock module and set up kernel thread */ |
493 | 493 | mutex_lock(&nfsd_mutex); |
... | ... | @@ -534,16 +534,6 @@ |
534 | 534 | ; |
535 | 535 | if (err == -EINTR) |
536 | 536 | break; |
537 | - else if (err < 0) { | |
538 | - if (err != preverr) { | |
539 | - printk(KERN_WARNING "%s: unexpected error " | |
540 | - "from svc_recv (%d)\n", __func__, -err); | |
541 | - preverr = err; | |
542 | - } | |
543 | - schedule_timeout_uninterruptible(HZ); | |
544 | - continue; | |
545 | - } | |
546 | - | |
547 | 537 | validate_process_creds(); |
548 | 538 | svc_process(rqstp); |
549 | 539 | validate_process_creds(); |