aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/clnt.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sunrpc/clnt.c')
-rw-r--r--net/sunrpc/clnt.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index 16c9fbc1db69..e9d5f3c562e5 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -486,17 +486,13 @@ int rpc_call_sync(struct rpc_clnt *clnt, struct rpc_message *msg, int flags)
486 /* Mask signals on RPC calls _and_ GSS_AUTH upcalls */ 486 /* Mask signals on RPC calls _and_ GSS_AUTH upcalls */
487 rpc_task_sigmask(task, &oldset); 487 rpc_task_sigmask(task, &oldset);
488 488
489 rpc_call_setup(task, msg, 0);
490
491 /* Set up the call info struct and execute the task */ 489 /* Set up the call info struct and execute the task */
490 rpc_call_setup(task, msg, 0);
491 if (task->tk_status == 0) {
492 atomic_inc(&task->tk_count);
493 rpc_execute(task);
494 }
492 status = task->tk_status; 495 status = task->tk_status;
493 if (status != 0)
494 goto out;
495 atomic_inc(&task->tk_count);
496 status = rpc_execute(task);
497 if (status == 0)
498 status = task->tk_status;
499out:
500 rpc_put_task(task); 496 rpc_put_task(task);
501 rpc_restore_sigmask(&oldset); 497 rpc_restore_sigmask(&oldset);
502 return status; 498 return status;