OSDN Git Service

SUNRPC: Push svcxdr_init_decode() into svc_process_common()
authorChuck Lever <chuck.lever@oracle.com>
Mon, 2 Jan 2023 17:05:30 +0000 (12:05 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 20 Feb 2023 14:20:09 +0000 (09:20 -0500)
Now that all vs_dispatch functions invoke svcxdr_init_decode(), it
is common code and can be pushed down into the generic RPC server.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/lockd/svc.c
fs/nfs/callback_xdr.c
fs/nfsd/nfssvc.c
net/sunrpc/svc.c

index 59ef8a1..e56d853 100644 (file)
@@ -695,7 +695,6 @@ static int nlmsvc_dispatch(struct svc_rqst *rqstp, __be32 *statp)
 {
        const struct svc_procedure *procp = rqstp->rq_procinfo;
 
-       svcxdr_init_decode(rqstp);
        if (!procp->pc_decode(rqstp, &rqstp->rq_arg_stream))
                goto out_decode_err;
 
index d0cccdd..46d3f59 100644 (file)
@@ -984,7 +984,6 @@ nfs_callback_dispatch(struct svc_rqst *rqstp, __be32 *statp)
 {
        const struct svc_procedure *procp = rqstp->rq_procinfo;
 
-       svcxdr_init_decode(rqstp);
        svcxdr_init_encode(rqstp);
 
        *statp = procp->pc_func(rqstp);
index 325d3d3..1ed29ea 100644 (file)
@@ -1040,7 +1040,6 @@ int nfsd_dispatch(struct svc_rqst *rqstp, __be32 *statp)
         */
        rqstp->rq_cachetype = proc->pc_cachetype;
 
-       svcxdr_init_decode(rqstp);
        if (!proc->pc_decode(rqstp, &rqstp->rq_arg_stream))
                goto out_decode_err;
 
index f066228..8d1700e 100644 (file)
@@ -1302,6 +1302,7 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
        if (progp == NULL)
                goto err_bad_prog;
 
+       svcxdr_init_decode(rqstp);
        rpc_stat = progp->pg_init_request(rqstp, progp, &process);
        switch (rpc_stat) {
        case rpc_success: