From 0f15ff2029dca72aa1fe5259dadeea00857d1cf2 Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Thu, 25 Oct 2007 18:32:34 -0400 Subject: [PATCH] --- yaml --- r: 79590 b: refs/heads/master c: b3ef8b3bb93300e58a4c4806207de3de4eb76f48 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/sunrpc/clnt.c | 11 ++++------- trunk/net/sunrpc/sched.c | 11 +++++++++++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index d9a6fb5806cf..e8e9519ebb56 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 77de2c590ec72828156d85fa13a96db87301cc68 +refs/heads/master: b3ef8b3bb93300e58a4c4806207de3de4eb76f48 diff --git a/trunk/net/sunrpc/clnt.c b/trunk/net/sunrpc/clnt.c index 7aeffeebf42d..6eb79c49c937 100644 --- a/trunk/net/sunrpc/clnt.c +++ b/trunk/net/sunrpc/clnt.c @@ -540,13 +540,10 @@ struct rpc_task *rpc_run_task(const struct rpc_task_setup *task_setup_data) goto out; } - if (task_setup_data->rpc_message != NULL) { - rpc_call_setup(task, task_setup_data->rpc_message, 0); - if (task->tk_status != 0) { - ret = ERR_PTR(task->tk_status); - rpc_put_task(task); - goto out; - } + if (task->tk_status != 0) { + ret = ERR_PTR(task->tk_status); + rpc_put_task(task); + goto out; } atomic_inc(&task->tk_count); /* Mask signals on synchronous RPC calls and RPCSEC_GSS upcalls */ diff --git a/trunk/net/sunrpc/sched.c b/trunk/net/sunrpc/sched.c index b9061bcf6fc1..fa53a88b2c5b 100644 --- a/trunk/net/sunrpc/sched.c +++ b/trunk/net/sunrpc/sched.c @@ -848,6 +848,17 @@ void rpc_init_task(struct rpc_task *task, const struct rpc_task_setup *task_setu if (task->tk_ops->rpc_call_prepare != NULL) task->tk_action = rpc_prepare_task; + if (task_setup_data->rpc_message != NULL) { + memcpy(&task->tk_msg, task_setup_data->rpc_message, sizeof(task->tk_msg)); + /* Bind the user cred */ + if (task->tk_msg.rpc_cred != NULL) + rpcauth_holdcred(task); + else + rpcauth_bindcred(task); + if (task->tk_action == NULL) + rpc_call_start(task); + } + /* starting timestamp */ task->tk_start = jiffies;