Loading include/linux/sunrpc/clnt.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -130,6 +130,8 @@ struct rpc_create_args { #define RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT (1UL << 9) #define RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT (1UL << 9) struct rpc_clnt *rpc_create(struct rpc_create_args *args); 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 *, struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *, const struct rpc_program *, u32); const struct rpc_program *, u32); void rpc_task_reset_client(struct rpc_task *task, struct rpc_clnt *clnt); void rpc_task_reset_client(struct rpc_task *task, struct rpc_clnt *clnt); Loading net/sunrpc/clnt.c +33 −25 Original line number Original line Diff line number Diff line Loading @@ -438,6 +438,38 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, return ERR_PTR(err); return ERR_PTR(err); } } struct rpc_clnt *rpc_create_xprt(struct rpc_create_args *args, struct rpc_xprt *xprt) { struct rpc_clnt *clnt = NULL; clnt = rpc_new_client(args, xprt, NULL); if (IS_ERR(clnt)) return clnt; if (!(args->flags & RPC_CLNT_CREATE_NOPING)) { int err = rpc_ping(clnt); if (err != 0) { rpc_shutdown_client(clnt); return ERR_PTR(err); } } clnt->cl_softrtry = 1; if (args->flags & RPC_CLNT_CREATE_HARDRTRY) clnt->cl_softrtry = 0; if (args->flags & RPC_CLNT_CREATE_AUTOBIND) clnt->cl_autobind = 1; if (args->flags & RPC_CLNT_CREATE_DISCRTRY) clnt->cl_discrtry = 1; if (!(args->flags & RPC_CLNT_CREATE_QUIET)) clnt->cl_chatty = 1; return clnt; } EXPORT_SYMBOL_GPL(rpc_create_xprt); /** /** * rpc_create - create an RPC client and transport with one call * rpc_create - create an RPC client and transport with one call * @args: rpc_clnt create argument structure * @args: rpc_clnt create argument structure Loading @@ -451,7 +483,6 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, struct rpc_clnt *rpc_create(struct rpc_create_args *args) struct rpc_clnt *rpc_create(struct rpc_create_args *args) { { struct rpc_xprt *xprt; struct rpc_xprt *xprt; struct rpc_clnt *clnt; struct xprt_create xprtargs = { struct xprt_create xprtargs = { .net = args->net, .net = args->net, .ident = args->protocol, .ident = args->protocol, Loading Loading @@ -515,30 +546,7 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args) if (args->flags & RPC_CLNT_CREATE_NONPRIVPORT) if (args->flags & RPC_CLNT_CREATE_NONPRIVPORT) xprt->resvport = 0; xprt->resvport = 0; clnt = rpc_new_client(args, xprt, NULL); return rpc_create_xprt(args, xprt); if (IS_ERR(clnt)) return clnt; if (!(args->flags & RPC_CLNT_CREATE_NOPING)) { int err = rpc_ping(clnt); if (err != 0) { rpc_shutdown_client(clnt); return ERR_PTR(err); } } clnt->cl_softrtry = 1; if (args->flags & RPC_CLNT_CREATE_HARDRTRY) clnt->cl_softrtry = 0; if (args->flags & RPC_CLNT_CREATE_AUTOBIND) clnt->cl_autobind = 1; if (args->flags & RPC_CLNT_CREATE_DISCRTRY) clnt->cl_discrtry = 1; if (!(args->flags & RPC_CLNT_CREATE_QUIET)) clnt->cl_chatty = 1; return clnt; } } EXPORT_SYMBOL_GPL(rpc_create); EXPORT_SYMBOL_GPL(rpc_create); Loading Loading
include/linux/sunrpc/clnt.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -130,6 +130,8 @@ struct rpc_create_args { #define RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT (1UL << 9) #define RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT (1UL << 9) struct rpc_clnt *rpc_create(struct rpc_create_args *args); 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 *, struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *, const struct rpc_program *, u32); const struct rpc_program *, u32); void rpc_task_reset_client(struct rpc_task *task, struct rpc_clnt *clnt); void rpc_task_reset_client(struct rpc_task *task, struct rpc_clnt *clnt); Loading
net/sunrpc/clnt.c +33 −25 Original line number Original line Diff line number Diff line Loading @@ -438,6 +438,38 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, return ERR_PTR(err); return ERR_PTR(err); } } struct rpc_clnt *rpc_create_xprt(struct rpc_create_args *args, struct rpc_xprt *xprt) { struct rpc_clnt *clnt = NULL; clnt = rpc_new_client(args, xprt, NULL); if (IS_ERR(clnt)) return clnt; if (!(args->flags & RPC_CLNT_CREATE_NOPING)) { int err = rpc_ping(clnt); if (err != 0) { rpc_shutdown_client(clnt); return ERR_PTR(err); } } clnt->cl_softrtry = 1; if (args->flags & RPC_CLNT_CREATE_HARDRTRY) clnt->cl_softrtry = 0; if (args->flags & RPC_CLNT_CREATE_AUTOBIND) clnt->cl_autobind = 1; if (args->flags & RPC_CLNT_CREATE_DISCRTRY) clnt->cl_discrtry = 1; if (!(args->flags & RPC_CLNT_CREATE_QUIET)) clnt->cl_chatty = 1; return clnt; } EXPORT_SYMBOL_GPL(rpc_create_xprt); /** /** * rpc_create - create an RPC client and transport with one call * rpc_create - create an RPC client and transport with one call * @args: rpc_clnt create argument structure * @args: rpc_clnt create argument structure Loading @@ -451,7 +483,6 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, struct rpc_clnt *rpc_create(struct rpc_create_args *args) struct rpc_clnt *rpc_create(struct rpc_create_args *args) { { struct rpc_xprt *xprt; struct rpc_xprt *xprt; struct rpc_clnt *clnt; struct xprt_create xprtargs = { struct xprt_create xprtargs = { .net = args->net, .net = args->net, .ident = args->protocol, .ident = args->protocol, Loading Loading @@ -515,30 +546,7 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args) if (args->flags & RPC_CLNT_CREATE_NONPRIVPORT) if (args->flags & RPC_CLNT_CREATE_NONPRIVPORT) xprt->resvport = 0; xprt->resvport = 0; clnt = rpc_new_client(args, xprt, NULL); return rpc_create_xprt(args, xprt); if (IS_ERR(clnt)) return clnt; if (!(args->flags & RPC_CLNT_CREATE_NOPING)) { int err = rpc_ping(clnt); if (err != 0) { rpc_shutdown_client(clnt); return ERR_PTR(err); } } clnt->cl_softrtry = 1; if (args->flags & RPC_CLNT_CREATE_HARDRTRY) clnt->cl_softrtry = 0; if (args->flags & RPC_CLNT_CREATE_AUTOBIND) clnt->cl_autobind = 1; if (args->flags & RPC_CLNT_CREATE_DISCRTRY) clnt->cl_discrtry = 1; if (!(args->flags & RPC_CLNT_CREATE_QUIET)) clnt->cl_chatty = 1; return clnt; } } EXPORT_SYMBOL_GPL(rpc_create); EXPORT_SYMBOL_GPL(rpc_create); Loading