mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-14 12:49:08 +00:00
SUNRPC: cleanup for rpc_new_client()
There is no reason why we shouldn't just pass the rpc_create_args. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
69dd716c5f
commit
698b6d088e
@ -122,8 +122,9 @@ rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct rpc_clnt * rpc_new_client(struct rpc_xprt *xprt, char *servname, struct rpc_program *program, u32 vers, rpc_authflavor_t flavor)
|
static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, struct rpc_xprt *xprt)
|
||||||
{
|
{
|
||||||
|
struct rpc_program *program = args->program;
|
||||||
struct rpc_version *version;
|
struct rpc_version *version;
|
||||||
struct rpc_clnt *clnt = NULL;
|
struct rpc_clnt *clnt = NULL;
|
||||||
struct rpc_auth *auth;
|
struct rpc_auth *auth;
|
||||||
@ -132,13 +133,13 @@ static struct rpc_clnt * rpc_new_client(struct rpc_xprt *xprt, char *servname, s
|
|||||||
|
|
||||||
/* sanity check the name before trying to print it */
|
/* sanity check the name before trying to print it */
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
len = strlen(servname);
|
len = strlen(args->servername);
|
||||||
if (len > RPC_MAXNETNAMELEN)
|
if (len > RPC_MAXNETNAMELEN)
|
||||||
goto out_no_rpciod;
|
goto out_no_rpciod;
|
||||||
len++;
|
len++;
|
||||||
|
|
||||||
dprintk("RPC: creating %s client for %s (xprt %p)\n",
|
dprintk("RPC: creating %s client for %s (xprt %p)\n",
|
||||||
program->name, servname, xprt);
|
program->name, args->servername, xprt);
|
||||||
|
|
||||||
err = rpciod_up();
|
err = rpciod_up();
|
||||||
if (err)
|
if (err)
|
||||||
@ -146,7 +147,11 @@ static struct rpc_clnt * rpc_new_client(struct rpc_xprt *xprt, char *servname, s
|
|||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
if (!xprt)
|
if (!xprt)
|
||||||
goto out_no_xprt;
|
goto out_no_xprt;
|
||||||
if (vers >= program->nrvers || !(version = program->version[vers]))
|
|
||||||
|
if (args->version >= program->nrvers)
|
||||||
|
goto out_err;
|
||||||
|
version = program->version[args->version];
|
||||||
|
if (version == NULL)
|
||||||
goto out_err;
|
goto out_err;
|
||||||
|
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
@ -158,12 +163,12 @@ static struct rpc_clnt * rpc_new_client(struct rpc_xprt *xprt, char *servname, s
|
|||||||
clnt->cl_server = clnt->cl_inline_name;
|
clnt->cl_server = clnt->cl_inline_name;
|
||||||
if (len > sizeof(clnt->cl_inline_name)) {
|
if (len > sizeof(clnt->cl_inline_name)) {
|
||||||
char *buf = kmalloc(len, GFP_KERNEL);
|
char *buf = kmalloc(len, GFP_KERNEL);
|
||||||
if (buf != 0)
|
if (buf != NULL)
|
||||||
clnt->cl_server = buf;
|
clnt->cl_server = buf;
|
||||||
else
|
else
|
||||||
len = sizeof(clnt->cl_inline_name);
|
len = sizeof(clnt->cl_inline_name);
|
||||||
}
|
}
|
||||||
strlcpy(clnt->cl_server, servname, len);
|
strlcpy(clnt->cl_server, args->servername, len);
|
||||||
|
|
||||||
clnt->cl_xprt = xprt;
|
clnt->cl_xprt = xprt;
|
||||||
clnt->cl_procinfo = version->procs;
|
clnt->cl_procinfo = version->procs;
|
||||||
@ -192,10 +197,10 @@ static struct rpc_clnt * rpc_new_client(struct rpc_xprt *xprt, char *servname, s
|
|||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out_no_path;
|
goto out_no_path;
|
||||||
|
|
||||||
auth = rpcauth_create(flavor, clnt);
|
auth = rpcauth_create(args->authflavor, clnt);
|
||||||
if (IS_ERR(auth)) {
|
if (IS_ERR(auth)) {
|
||||||
printk(KERN_INFO "RPC: Couldn't create auth handle (flavor %u)\n",
|
printk(KERN_INFO "RPC: Couldn't create auth handle (flavor %u)\n",
|
||||||
flavor);
|
args->authflavor);
|
||||||
err = PTR_ERR(auth);
|
err = PTR_ERR(auth);
|
||||||
goto out_no_auth;
|
goto out_no_auth;
|
||||||
}
|
}
|
||||||
@ -297,8 +302,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(xprt, args->servername, args->program,
|
clnt = rpc_new_client(args, xprt);
|
||||||
args->version, args->authflavor);
|
|
||||||
if (IS_ERR(clnt))
|
if (IS_ERR(clnt))
|
||||||
return clnt;
|
return clnt;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user