diff options
Diffstat (limited to 'net/sunrpc/sched.c')
-rw-r--r-- | net/sunrpc/sched.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 7db956f6e018..6eab9bf94baf 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c | |||
@@ -817,14 +817,11 @@ static void rpc_init_task(struct rpc_task *task, const struct rpc_task_setup *ta | |||
817 | task->tk_action = rpc_prepare_task; | 817 | task->tk_action = rpc_prepare_task; |
818 | 818 | ||
819 | if (task_setup_data->rpc_message != NULL) { | 819 | if (task_setup_data->rpc_message != NULL) { |
820 | memcpy(&task->tk_msg, task_setup_data->rpc_message, sizeof(task->tk_msg)); | 820 | task->tk_msg.rpc_proc = task_setup_data->rpc_message->rpc_proc; |
821 | task->tk_msg.rpc_argp = task_setup_data->rpc_message->rpc_argp; | ||
822 | task->tk_msg.rpc_resp = task_setup_data->rpc_message->rpc_resp; | ||
821 | /* Bind the user cred */ | 823 | /* Bind the user cred */ |
822 | if (task->tk_msg.rpc_cred != NULL) | 824 | rpcauth_bindcred(task, task_setup_data->rpc_message->rpc_cred, task_setup_data->flags); |
823 | rpcauth_holdcred(task); | ||
824 | else if (!(task_setup_data->flags & RPC_TASK_ROOTCREDS)) | ||
825 | rpcauth_bindcred(task); | ||
826 | else | ||
827 | rpcauth_bind_root_cred(task); | ||
828 | if (task->tk_action == NULL) | 825 | if (task->tk_action == NULL) |
829 | rpc_call_start(task); | 826 | rpc_call_start(task); |
830 | } | 827 | } |