diff options
author | J. Bruce Fields <bfields@redhat.com> | 2016-05-16 17:03:42 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2016-06-15 10:32:25 -0400 |
commit | d50039ea5ee63c589b0434baa5ecf6e5075bb6f9 (patch) | |
tree | 3f93ee65837cdd026d59c7b97ab5156a8aa08745 /net | |
parent | 1208fd569c07ab84aa5d024abd863267c2953b4a (diff) |
nfsd4/rpc: move backchannel create logic into rpc code
Also simplify the logic a bit.
Cc: stable@vger.kernel.org
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Acked-by: Trond Myklebust <trondmy@primarydata.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/clnt.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 173c5dd2d751..b33721d41adc 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c | |||
@@ -446,7 +446,7 @@ out_no_rpciod: | |||
446 | return ERR_PTR(err); | 446 | return ERR_PTR(err); |
447 | } | 447 | } |
448 | 448 | ||
449 | struct rpc_clnt *rpc_create_xprt(struct rpc_create_args *args, | 449 | static struct rpc_clnt *rpc_create_xprt(struct rpc_create_args *args, |
450 | struct rpc_xprt *xprt) | 450 | struct rpc_xprt *xprt) |
451 | { | 451 | { |
452 | struct rpc_clnt *clnt = NULL; | 452 | struct rpc_clnt *clnt = NULL; |
@@ -484,7 +484,6 @@ struct rpc_clnt *rpc_create_xprt(struct rpc_create_args *args, | |||
484 | 484 | ||
485 | return clnt; | 485 | return clnt; |
486 | } | 486 | } |
487 | EXPORT_SYMBOL_GPL(rpc_create_xprt); | ||
488 | 487 | ||
489 | /** | 488 | /** |
490 | * rpc_create - create an RPC client and transport with one call | 489 | * rpc_create - create an RPC client and transport with one call |
@@ -510,6 +509,15 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args) | |||
510 | }; | 509 | }; |
511 | char servername[48]; | 510 | char servername[48]; |
512 | 511 | ||
512 | if (args->bc_xprt) { | ||
513 | WARN_ON(args->protocol != XPRT_TRANSPORT_BC_TCP); | ||
514 | xprt = args->bc_xprt->xpt_bc_xprt; | ||
515 | if (xprt) { | ||
516 | xprt_get(xprt); | ||
517 | return rpc_create_xprt(args, xprt); | ||
518 | } | ||
519 | } | ||
520 | |||
513 | if (args->flags & RPC_CLNT_CREATE_INFINITE_SLOTS) | 521 | if (args->flags & RPC_CLNT_CREATE_INFINITE_SLOTS) |
514 | xprtargs.flags |= XPRT_CREATE_INFINITE_SLOTS; | 522 | xprtargs.flags |= XPRT_CREATE_INFINITE_SLOTS; |
515 | if (args->flags & RPC_CLNT_CREATE_NO_IDLE_TIMEOUT) | 523 | if (args->flags & RPC_CLNT_CREATE_NO_IDLE_TIMEOUT) |