summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2023-07-18 16:38:08 +1000
committerChuck Lever <chuck.lever@oracle.com>2023-08-29 17:45:22 -0400
commitf78116d3bf4fd7a84451e1a2adc35df7a63fbbf4 (patch)
treeaaab44e3538626892b2decbab14013cd41ba098f
parent9f28a971ee9fdf1bf8ce8c88b103f483be610277 (diff)
SUNRPC: call svc_process() from svc_recv().
All callers of svc_recv() go on to call svc_process() on success. Simplify callers by having svc_recv() do that for them. This loses one call to validate_process_creds() in nfsd. That was debugging code added 14 years ago. I don't think we need to keep it. Signed-off-by: NeilBrown <neilb@suse.de> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
-rw-r--r--fs/lockd/svc.c5
-rw-r--r--fs/nfs/callback.c1
-rw-r--r--fs/nfsd/nfssvc.c3
-rw-r--r--net/sunrpc/svc.c1
-rw-r--r--net/sunrpc/svc_xprt.c3
5 files changed, 3 insertions, 10 deletions
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index 614faa5f69cd..91ef139a7757 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -132,7 +132,6 @@ lockd(void *vrqstp)
*/
while (!kthread_should_stop()) {
long timeout = MAX_SCHEDULE_TIMEOUT;
- RPC_IFDEBUG(char buf[RPC_MAX_ADDRBUFLEN]);
/* update sv_maxconn if it has changed */
rqstp->rq_server->sv_maxconn = nlm_max_connections;
@@ -146,10 +145,6 @@ lockd(void *vrqstp)
err = svc_recv(rqstp, timeout);
if (err == -EAGAIN || err == -EINTR)
continue;
- dprintk("lockd: request from %s\n",
- svc_print_addr(rqstp, buf, sizeof(buf)));
-
- svc_process(rqstp);
}
if (nlmsvc_ops)
nlmsvc_invalidate_all();
diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c
index 46a0a2d6962e..2d94384bd6a9 100644
--- a/fs/nfs/callback.c
+++ b/fs/nfs/callback.c
@@ -86,7 +86,6 @@ nfs4_callback_svc(void *vrqstp)
err = svc_recv(rqstp, MAX_SCHEDULE_TIMEOUT);
if (err == -EAGAIN || err == -EINTR)
continue;
- svc_process(rqstp);
}
svc_exit_thread(rqstp);
diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c
index a0b16e3dd91a..547feb8ad0af 100644
--- a/fs/nfsd/nfssvc.c
+++ b/fs/nfsd/nfssvc.c
@@ -970,8 +970,7 @@ nfsd(void *vrqstp)
;
if (err == -EINTR)
break;
- validate_process_creds();
- svc_process(rqstp);
+
validate_process_creds();
}
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
index 587811a002c9..c69896c124a4 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -1516,7 +1516,6 @@ out_baddir:
out_drop:
svc_drop(rqstp);
}
-EXPORT_SYMBOL_GPL(svc_process);
#if defined(CONFIG_SUNRPC_BACKCHANNEL)
/*
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index d4a7fd5aabd1..8430b151bd71 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -906,7 +906,8 @@ int svc_recv(struct svc_rqst *rqstp, long timeout)
if (serv->sv_stats)
serv->sv_stats->netcnt++;
rqstp->rq_stime = ktime_get();
- return len;
+ svc_process(rqstp);
+ return 0;
out_release:
rqstp->rq_res.len = 0;
svc_xprt_release(rqstp);