提交 2efef837 编写于 作者: T Trond Myklebust

RPC: Clean up rpc_execute...

The error values are already propagated through task->tk_status, and
none of the callers check one without checking the other, so we can
drop the return value.
Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
上级 54cc533a
...@@ -253,7 +253,7 @@ void rpc_put_task(struct rpc_task *); ...@@ -253,7 +253,7 @@ void rpc_put_task(struct rpc_task *);
void rpc_exit_task(struct rpc_task *); void rpc_exit_task(struct rpc_task *);
void rpc_release_calldata(const struct rpc_call_ops *, void *); void rpc_release_calldata(const struct rpc_call_ops *, void *);
void rpc_killall_tasks(struct rpc_clnt *); void rpc_killall_tasks(struct rpc_clnt *);
int rpc_execute(struct rpc_task *); void rpc_execute(struct rpc_task *);
void rpc_init_priority_wait_queue(struct rpc_wait_queue *, const char *); void rpc_init_priority_wait_queue(struct rpc_wait_queue *, const char *);
void rpc_init_wait_queue(struct rpc_wait_queue *, const char *); void rpc_init_wait_queue(struct rpc_wait_queue *, const char *);
void rpc_sleep_on(struct rpc_wait_queue *, struct rpc_task *, void rpc_sleep_on(struct rpc_wait_queue *, struct rpc_task *,
......
...@@ -486,17 +486,13 @@ int rpc_call_sync(struct rpc_clnt *clnt, struct rpc_message *msg, int flags) ...@@ -486,17 +486,13 @@ int rpc_call_sync(struct rpc_clnt *clnt, struct rpc_message *msg, int flags)
/* Mask signals on RPC calls _and_ GSS_AUTH upcalls */ /* Mask signals on RPC calls _and_ GSS_AUTH upcalls */
rpc_task_sigmask(task, &oldset); rpc_task_sigmask(task, &oldset);
rpc_call_setup(task, msg, 0);
/* Set up the call info struct and execute the task */ /* Set up the call info struct and execute the task */
rpc_call_setup(task, msg, 0);
if (task->tk_status == 0) {
atomic_inc(&task->tk_count);
rpc_execute(task);
}
status = task->tk_status; status = task->tk_status;
if (status != 0)
goto out;
atomic_inc(&task->tk_count);
status = rpc_execute(task);
if (status == 0)
status = task->tk_status;
out:
rpc_put_task(task); rpc_put_task(task);
rpc_restore_sigmask(&oldset); rpc_restore_sigmask(&oldset);
return status; return status;
......
...@@ -625,7 +625,7 @@ void rpc_release_calldata(const struct rpc_call_ops *ops, void *calldata) ...@@ -625,7 +625,7 @@ void rpc_release_calldata(const struct rpc_call_ops *ops, void *calldata)
/* /*
* This is the RPC `scheduler' (or rather, the finite state machine). * This is the RPC `scheduler' (or rather, the finite state machine).
*/ */
static int __rpc_execute(struct rpc_task *task) static void __rpc_execute(struct rpc_task *task)
{ {
int status = 0; int status = 0;
...@@ -679,9 +679,9 @@ static int __rpc_execute(struct rpc_task *task) ...@@ -679,9 +679,9 @@ static int __rpc_execute(struct rpc_task *task)
if (RPC_IS_ASYNC(task)) { if (RPC_IS_ASYNC(task)) {
/* Careful! we may have raced... */ /* Careful! we may have raced... */
if (RPC_IS_QUEUED(task)) if (RPC_IS_QUEUED(task))
return 0; return;
if (rpc_test_and_set_running(task)) if (rpc_test_and_set_running(task))
return 0; return;
continue; continue;
} }
...@@ -710,7 +710,6 @@ static int __rpc_execute(struct rpc_task *task) ...@@ -710,7 +710,6 @@ static int __rpc_execute(struct rpc_task *task)
dprintk("RPC: %4d, return %d, status %d\n", task->tk_pid, status, task->tk_status); dprintk("RPC: %4d, return %d, status %d\n", task->tk_pid, status, task->tk_status);
/* Release all resources associated with the task */ /* Release all resources associated with the task */
rpc_release_task(task); rpc_release_task(task);
return status;
} }
/* /*
...@@ -722,12 +721,11 @@ static int __rpc_execute(struct rpc_task *task) ...@@ -722,12 +721,11 @@ static int __rpc_execute(struct rpc_task *task)
* released. In particular note that tk_release() will have * released. In particular note that tk_release() will have
* been called, so your task memory may have been freed. * been called, so your task memory may have been freed.
*/ */
int void rpc_execute(struct rpc_task *task)
rpc_execute(struct rpc_task *task)
{ {
rpc_set_active(task); rpc_set_active(task);
rpc_set_running(task); rpc_set_running(task);
return __rpc_execute(task); __rpc_execute(task);
} }
static void rpc_async_schedule(struct work_struct *work) static void rpc_async_schedule(struct work_struct *work)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册