Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f994c43d authored by Trond Myklebust's avatar Trond Myklebust
Browse files

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: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 50d2bdb1
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -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);