Patch "nfsd4/rpc: move backchannel create logic into rpc code" has been added to the 4.6-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
nfsd4/rpc: move backchannel create logic into rpc code
to the 4.6-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
nfsd4-rpc-move-backchannel-create-logic-into-rpc-code.patch
and it can be found in the queue-4.6 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d50039ea5ee63c589b0434baa5ecf6e5075bb6f9Mon Sep 17 00:00:00 2001
From: "J. Bruce Fields" <[email protected]>
Date: Mon, 16 May 2016 17:03:42 -0400
Subject: nfsd4/rpc: move backchannel create logic into rpc code
From: J. Bruce Fields <[email protected]>
commit d50039ea5ee63c589b0434baa5ecf6e5075bb6f9 upstream.
Also simplify the logic a bit.
--- fs/nfsd/nfs4callback.c | 18 +----------------- include/linux/sunrpc/clnt.h | 2 -- net/sunrpc/clnt.c | 12 ++++++++++-- 3 files changed, 11 insertions(+), 21 deletions(-)
fs/nfsd/nfs4callback.c +1 -17
@@ -710,22 +710,6 @@ static struct rpc_cred *get_backchannel_ } } -static struct rpc_clnt *create_backchannel_client (struct rpc_create_args *args) -{ -struct rpc_xprt *xprt; - -if (args->protocol !=XPRT_TRANSPORT_BC_TCP ) -return rpc_create (args); - - xprt = args->bc_xprt->xpt_bc_xprt; -if (xprt) { -xprt_get (xprt); -return rpc_create_xprt (args, xprt); - } - -return rpc_create (args); -} -static int setup_callback_client (struct nfs4_client *clp,struct nfs4_cb_conn *conn,struct nfsd4_session *ses) {int maxtime =max_cb_time (clp->net);
@@ -768,7 +752,7 @@ static int setup_callback_client(struct args.authflavor = ses->se_cb_sec.flavor; }/* Create RPC client */ - client =create_backchannel_client (&args); + client =rpc_create (&args);if (IS_ERR (client)) {dprintk ("NFSD: couldn't create callback client: %ld\n" ,PTR_ERR (client));
include/linux/sunrpc/clnt.h +0 -2
@@ -137,8 +137,6 @@ struct rpc_create_args {#define RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT (1UL << 9)struct rpc_clnt *rpc_create (struct rpc_create_args *args); -struct rpc_clnt *rpc_create_xprt (struct rpc_create_args *args, -struct rpc_xprt *xprt);struct rpc_clnt *rpc_bind_new_program (struct rpc_clnt *,const struct rpc_program *,u32 );struct rpc_clnt *rpc_clone_client (struct rpc_clnt *);
net/sunrpc/clnt.c +10 -2
@@ -446,7 +446,7 @@ out_no_rpciod:return ERR_PTR (err); } -struct rpc_clnt *rpc_create_xprt (struct rpc_create_args *args, +static struct rpc_clnt *rpc_create_xprt (struct rpc_create_args *args,struct rpc_xprt *xprt) {struct rpc_clnt *clnt =NULL ;
@@ -483,7 +483,6 @@ struct rpc_clnt *rpc_create_xprt(structreturn clnt; } -EXPORT_SYMBOL_GPL (rpc_create_xprt);/** * rpc_create - create an RPC client and transport with one call
@@ -509,6 +508,15 @@ struct rpc_clnt *rpc_create(struct rpc_c };char servername[48 ]; +if (args->bc_xprt) { +WARN_ON (args->protocol !=XPRT_TRANSPORT_BC_TCP ); + xprt = args->bc_xprt->xpt_bc_xprt; +if (xprt) { +xprt_get (xprt); +return rpc_create_xprt (args, xprt); + } + } +if (args->flags &RPC_CLNT_CREATE_INFINITE_SLOTS ) xprtargs.flags |=XPRT_CREATE_INFINITE_SLOTS ;if (args->flags &RPC_CLNT_CREATE_NO_IDLE_TIMEOUT )
Patches currently in stable-queue which might be from [email protected] are
queue-4.6/nfsd-check-permissions-when-setting-acls.patch queue-4.6/nfsd-always-lock-state-exclusively.patch queue-4.6/nfsd-extend-the-mutex-holding-region-around-in-nfsd4_process_open2.patch queue-4.6/nfsd4-rpc-move-backchannel-create-logic-into-rpc-code.patch