Skip to content

Commit

Permalink
svcrpc: remove handling of unknown errors from svc_recv
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
J. Bruce Fields committed Aug 21, 2012
1 parent 9f9d2eb commit 5b444cc
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 40 deletions.
17 changes: 2 additions & 15 deletions fs/lockd/svc.c
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ static void restart_grace(void)
static int
lockd(void *vrqstp)
{
int err = 0, preverr = 0;
int err = 0;
struct svc_rqst *rqstp = vrqstp;

/* try_to_freeze() is called from svc_recv() */
Expand Down Expand Up @@ -165,21 +165,8 @@ lockd(void *vrqstp)
* recvfrom routine.
*/
err = svc_recv(rqstp, timeout);
if (err == -EAGAIN || err == -EINTR) {
preverr = err;
if (err == -EAGAIN || err == -EINTR)
continue;
}
if (err < 0) {
if (err != preverr) {
printk(KERN_WARNING "%s: unexpected error "
"from svc_recv (%d)\n", __func__, err);
preverr = err;
}
schedule_timeout_interruptible(HZ);
continue;
}
preverr = err;

dprintk("lockd: request from %s\n",
svc_print_addr(rqstp, buf, sizeof(buf)));

Expand Down
16 changes: 2 additions & 14 deletions fs/nfs/callback.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ unsigned short nfs_callback_tcpport6;
static int
nfs4_callback_svc(void *vrqstp)
{
int err, preverr = 0;
int err;
struct svc_rqst *rqstp = vrqstp;

set_freezable();
Expand All @@ -55,20 +55,8 @@ nfs4_callback_svc(void *vrqstp)
* Listen for a request on the socket
*/
err = svc_recv(rqstp, MAX_SCHEDULE_TIMEOUT);
if (err == -EAGAIN || err == -EINTR) {
preverr = err;
if (err == -EAGAIN || err == -EINTR)
continue;
}
if (err < 0) {
if (err != preverr) {
printk(KERN_WARNING "NFS: %s: unexpected error "
"from svc_recv (%d)\n", __func__, err);
preverr = err;
}
schedule_timeout_uninterruptible(HZ);
continue;
}
preverr = err;
svc_process(rqstp);
}
return 0;
Expand Down
12 changes: 1 addition & 11 deletions fs/nfsd/nfssvc.c
Original file line number Diff line number Diff line change
Expand Up @@ -487,7 +487,7 @@ static int
nfsd(void *vrqstp)
{
struct svc_rqst *rqstp = (struct svc_rqst *) vrqstp;
int err, preverr = 0;
int err;

/* Lock module and set up kernel thread */
mutex_lock(&nfsd_mutex);
Expand Down Expand Up @@ -534,16 +534,6 @@ nfsd(void *vrqstp)
;
if (err == -EINTR)
break;
else if (err < 0) {
if (err != preverr) {
printk(KERN_WARNING "%s: unexpected error "
"from svc_recv (%d)\n", __func__, -err);
preverr = err;
}
schedule_timeout_uninterruptible(HZ);
continue;
}

validate_process_creds();
svc_process(rqstp);
validate_process_creds();
Expand Down

0 comments on commit 5b444cc

Please sign in to comment.