From: NeilBrown It isn't needed as it is available in rqstp->rq_server, and dropping it allows some local vars to be dropped. Cc: "J. Bruce Fields" Signed-off-by: Neil Brown Signed-off-by: Andrew Morton --- fs/lockd/svc.c | 7 +++---- fs/nfsd/nfssvc.c | 6 ++---- include/linux/sunrpc/svc.h | 2 +- include/linux/sunrpc/svcsock.h | 2 +- net/sunrpc/svc.c | 3 ++- net/sunrpc/svcsock.c | 3 ++- 6 files changed, 11 insertions(+), 12 deletions(-) diff -puN fs/lockd/svc.c~knfsd-drop-serv-option-to-svc_recv-and-svc_process fs/lockd/svc.c --- a/fs/lockd/svc.c~knfsd-drop-serv-option-to-svc_recv-and-svc_process +++ a/fs/lockd/svc.c @@ -98,7 +98,6 @@ static inline void clear_grace_period(vo static void lockd(struct svc_rqst *rqstp) { - struct svc_serv *serv = rqstp->rq_server; int err = 0; unsigned long grace_period_expire; @@ -114,7 +113,7 @@ lockd(struct svc_rqst *rqstp) * Let our maker know we're running. */ nlmsvc_pid = current->pid; - nlmsvc_serv = serv; + nlmsvc_serv = rqstp->rq_server; complete(&lockd_start_done); daemonize("lockd"); @@ -164,7 +163,7 @@ lockd(struct svc_rqst *rqstp) * Find a socket with data available and call its * recvfrom routine. */ - err = svc_recv(serv, rqstp, timeout); + err = svc_recv(rqstp, timeout); if (err == -EAGAIN || err == -EINTR) continue; if (err < 0) { @@ -177,7 +176,7 @@ lockd(struct svc_rqst *rqstp) dprintk("lockd: request from %08x\n", (unsigned)ntohl(rqstp->rq_addr.sin_addr.s_addr)); - svc_process(serv, rqstp); + svc_process(rqstp); } diff -puN fs/nfsd/nfssvc.c~knfsd-drop-serv-option-to-svc_recv-and-svc_process fs/nfsd/nfssvc.c --- a/fs/nfsd/nfssvc.c~knfsd-drop-serv-option-to-svc_recv-and-svc_process +++ a/fs/nfsd/nfssvc.c @@ -323,7 +323,6 @@ update_thread_usage(int busy_threads) static void nfsd(struct svc_rqst *rqstp) { - struct svc_serv *serv = rqstp->rq_server; struct fs_struct *fsp; int err; struct nfsd_list me; @@ -373,8 +372,7 @@ nfsd(struct svc_rqst *rqstp) * Find a socket with data available and call its * recvfrom routine. */ - while ((err = svc_recv(serv, rqstp, - 60*60*HZ)) == -EAGAIN) + while ((err = svc_recv(rqstp, 60*60*HZ)) == -EAGAIN) ; if (err < 0) break; @@ -387,7 +385,7 @@ nfsd(struct svc_rqst *rqstp) /* Process request with signals blocked. */ sigprocmask(SIG_SETMASK, &allowed_mask, NULL); - svc_process(serv, rqstp); + svc_process(rqstp); /* Unlock export hash tables */ exp_readunlock(); diff -puN include/linux/sunrpc/svc.h~knfsd-drop-serv-option-to-svc_recv-and-svc_process include/linux/sunrpc/svc.h --- a/include/linux/sunrpc/svc.h~knfsd-drop-serv-option-to-svc_recv-and-svc_process +++ a/include/linux/sunrpc/svc.h @@ -321,7 +321,7 @@ struct svc_serv * svc_create(struct svc int svc_create_thread(svc_thread_fn, struct svc_serv *); void svc_exit_thread(struct svc_rqst *); void svc_destroy(struct svc_serv *); -int svc_process(struct svc_serv *, struct svc_rqst *); +int svc_process(struct svc_rqst *); int svc_register(struct svc_serv *, int, unsigned short); void svc_wake_up(struct svc_serv *); void svc_reserve(struct svc_rqst *rqstp, int space); diff -puN include/linux/sunrpc/svcsock.h~knfsd-drop-serv-option-to-svc_recv-and-svc_process include/linux/sunrpc/svcsock.h --- a/include/linux/sunrpc/svcsock.h~knfsd-drop-serv-option-to-svc_recv-and-svc_process +++ a/include/linux/sunrpc/svcsock.h @@ -57,7 +57,7 @@ struct svc_sock { */ int svc_makesock(struct svc_serv *, int, unsigned short); void svc_delete_socket(struct svc_sock *); -int svc_recv(struct svc_serv *, struct svc_rqst *, long); +int svc_recv(struct svc_rqst *, long); int svc_send(struct svc_rqst *); void svc_drop(struct svc_rqst *); void svc_sock_update_bufs(struct svc_serv *serv); diff -puN net/sunrpc/svc.c~knfsd-drop-serv-option-to-svc_recv-and-svc_process net/sunrpc/svc.c --- a/net/sunrpc/svc.c~knfsd-drop-serv-option-to-svc_recv-and-svc_process +++ a/net/sunrpc/svc.c @@ -253,13 +253,14 @@ svc_register(struct svc_serv *serv, int * Process the RPC request. */ int -svc_process(struct svc_serv *serv, struct svc_rqst *rqstp) +svc_process(struct svc_rqst *rqstp) { struct svc_program *progp; struct svc_version *versp = NULL; /* compiler food */ struct svc_procedure *procp = NULL; struct kvec * argv = &rqstp->rq_arg.head[0]; struct kvec * resv = &rqstp->rq_res.head[0]; + struct svc_serv *serv = rqstp->rq_server; kxdrproc_t xdr; u32 *statp; u32 dir, prog, vers, proc, diff -puN net/sunrpc/svcsock.c~knfsd-drop-serv-option-to-svc_recv-and-svc_process net/sunrpc/svcsock.c --- a/net/sunrpc/svcsock.c~knfsd-drop-serv-option-to-svc_recv-and-svc_process +++ a/net/sunrpc/svcsock.c @@ -1176,9 +1176,10 @@ svc_sock_update_bufs(struct svc_serv *se * Receive the next request on any socket. */ int -svc_recv(struct svc_serv *serv, struct svc_rqst *rqstp, long timeout) +svc_recv(struct svc_rqst *rqstp, long timeout) { struct svc_sock *svsk =NULL; + struct svc_serv *serv = rqstp->rq_server; int len; int pages; struct xdr_buf *arg; _