SUNRPC: Clean up rpc_bind_new_program
We can and should use the rpc_create_args and __rpc_clone_client() to change the program and version number on the resulting rpc_client. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
50d2bdb197
commit
f994c43d19
|
@ -703,21 +703,19 @@ struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *old,
|
|||
const struct rpc_program *program,
|
||||
u32 vers)
|
||||
{
|
||||
struct rpc_create_args args = {
|
||||
.program = program,
|
||||
.prognumber = program->number,
|
||||
.version = vers,
|
||||
.authflavor = old->cl_auth->au_flavor,
|
||||
.client_name = old->cl_principal,
|
||||
};
|
||||
struct rpc_clnt *clnt;
|
||||
const struct rpc_version *version;
|
||||
int err;
|
||||
|
||||
BUG_ON(vers >= program->nrvers || !program->version[vers]);
|
||||
version = program->version[vers];
|
||||
clnt = rpc_clone_client(old);
|
||||
clnt = __rpc_clone_client(&args, old);
|
||||
if (IS_ERR(clnt))
|
||||
goto out;
|
||||
clnt->cl_procinfo = version->procs;
|
||||
clnt->cl_maxproc = version->nrprocs;
|
||||
clnt->cl_protname = program->name;
|
||||
clnt->cl_prog = program->number;
|
||||
clnt->cl_vers = version->number;
|
||||
clnt->cl_stats = program->stats;
|
||||
err = rpc_ping(clnt);
|
||||
if (err != 0) {
|
||||
rpc_shutdown_client(clnt);
|
||||
|
|
Loading…
Reference in New Issue