Commit 5b444cc9a4c979aa0fa185c8ddca221462a34b7a

Authored by J. Bruce Fields
1 parent 9f9d2ebe69

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

... ... @@ -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  
... ... @@ -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;
... ... @@ -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();