|
|
@@ -446,7 +446,7 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args,
|
|
|
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;
|
|
|
@@ -484,7 +484,6 @@ struct rpc_clnt *rpc_create_xprt(struct rpc_create_args *args,
|
|
|
|
|
|
return clnt;
|
|
|
}
|
|
|
-EXPORT_SYMBOL_GPL(rpc_create_xprt);
|
|
|
|
|
|
/**
|
|
|
* 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)
|
|
|
};
|
|
|
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)
|