SUNRPC: Clean up rpcauth_bindcred()
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
@@ -135,9 +135,7 @@ void rpcauth_release(struct rpc_auth *);
|
|||||||
struct rpc_cred * rpcauth_lookup_credcache(struct rpc_auth *, struct auth_cred *, int);
|
struct rpc_cred * rpcauth_lookup_credcache(struct rpc_auth *, struct auth_cred *, int);
|
||||||
void rpcauth_init_cred(struct rpc_cred *, const struct auth_cred *, struct rpc_auth *, const struct rpc_credops *);
|
void rpcauth_init_cred(struct rpc_cred *, const struct auth_cred *, struct rpc_auth *, const struct rpc_credops *);
|
||||||
struct rpc_cred * rpcauth_lookupcred(struct rpc_auth *, int);
|
struct rpc_cred * rpcauth_lookupcred(struct rpc_auth *, int);
|
||||||
void rpcauth_bindcred(struct rpc_task *);
|
void rpcauth_bindcred(struct rpc_task *, struct rpc_cred *, int);
|
||||||
void rpcauth_bind_root_cred(struct rpc_task *);
|
|
||||||
void rpcauth_holdcred(struct rpc_task *);
|
|
||||||
void put_rpccred(struct rpc_cred *);
|
void put_rpccred(struct rpc_cred *);
|
||||||
void rpcauth_unbindcred(struct rpc_task *);
|
void rpcauth_unbindcred(struct rpc_task *);
|
||||||
__be32 * rpcauth_marshcred(struct rpc_task *, __be32 *);
|
__be32 * rpcauth_marshcred(struct rpc_task *, __be32 *);
|
||||||
|
@@ -375,7 +375,15 @@ rpcauth_init_cred(struct rpc_cred *cred, const struct auth_cred *acred,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(rpcauth_init_cred);
|
EXPORT_SYMBOL_GPL(rpcauth_init_cred);
|
||||||
|
|
||||||
void
|
static void
|
||||||
|
rpcauth_generic_bind_cred(struct rpc_task *task, struct rpc_cred *cred)
|
||||||
|
{
|
||||||
|
task->tk_msg.rpc_cred = get_rpccred(cred);
|
||||||
|
dprintk("RPC: %5u holding %s cred %p\n", task->tk_pid,
|
||||||
|
cred->cr_auth->au_ops->au_name, cred);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
rpcauth_bind_root_cred(struct rpc_task *task)
|
rpcauth_bind_root_cred(struct rpc_task *task)
|
||||||
{
|
{
|
||||||
struct rpc_auth *auth = task->tk_client->cl_auth;
|
struct rpc_auth *auth = task->tk_client->cl_auth;
|
||||||
@@ -394,8 +402,8 @@ rpcauth_bind_root_cred(struct rpc_task *task)
|
|||||||
task->tk_status = PTR_ERR(ret);
|
task->tk_status = PTR_ERR(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
rpcauth_bindcred(struct rpc_task *task)
|
rpcauth_bind_new_cred(struct rpc_task *task)
|
||||||
{
|
{
|
||||||
struct rpc_auth *auth = task->tk_client->cl_auth;
|
struct rpc_auth *auth = task->tk_client->cl_auth;
|
||||||
struct rpc_cred *ret;
|
struct rpc_cred *ret;
|
||||||
@@ -410,14 +418,14 @@ rpcauth_bindcred(struct rpc_task *task)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
rpcauth_holdcred(struct rpc_task *task)
|
rpcauth_bindcred(struct rpc_task *task, struct rpc_cred *cred, int flags)
|
||||||
{
|
{
|
||||||
struct rpc_cred *cred = task->tk_msg.rpc_cred;
|
if (cred != NULL)
|
||||||
if (cred != NULL) {
|
rpcauth_generic_bind_cred(task, cred);
|
||||||
get_rpccred(cred);
|
else if (flags & RPC_TASK_ROOTCREDS)
|
||||||
dprintk("RPC: %5u holding %s cred %p\n", task->tk_pid,
|
rpcauth_bind_root_cred(task);
|
||||||
cred->cr_auth->au_ops->au_name, cred);
|
else
|
||||||
}
|
rpcauth_bind_new_cred(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@@ -817,14 +817,11 @@ static void rpc_init_task(struct rpc_task *task, const struct rpc_task_setup *ta
|
|||||||
task->tk_action = rpc_prepare_task;
|
task->tk_action = rpc_prepare_task;
|
||||||
|
|
||||||
if (task_setup_data->rpc_message != NULL) {
|
if (task_setup_data->rpc_message != NULL) {
|
||||||
memcpy(&task->tk_msg, task_setup_data->rpc_message, sizeof(task->tk_msg));
|
task->tk_msg.rpc_proc = task_setup_data->rpc_message->rpc_proc;
|
||||||
|
task->tk_msg.rpc_argp = task_setup_data->rpc_message->rpc_argp;
|
||||||
|
task->tk_msg.rpc_resp = task_setup_data->rpc_message->rpc_resp;
|
||||||
/* Bind the user cred */
|
/* Bind the user cred */
|
||||||
if (task->tk_msg.rpc_cred != NULL)
|
rpcauth_bindcred(task, task_setup_data->rpc_message->rpc_cred, task_setup_data->flags);
|
||||||
rpcauth_holdcred(task);
|
|
||||||
else if (!(task_setup_data->flags & RPC_TASK_ROOTCREDS))
|
|
||||||
rpcauth_bindcred(task);
|
|
||||||
else
|
|
||||||
rpcauth_bind_root_cred(task);
|
|
||||||
if (task->tk_action == NULL)
|
if (task->tk_action == NULL)
|
||||||
rpc_call_start(task);
|
rpc_call_start(task);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user