summaryrefslogtreecommitdiffstats
path: root/net/sunrpc/clnt.c
diff options
context:
space:
mode:
authorTrond Myklebust2008-01-15 20:17:11 +0100
committerTrond Myklebust2008-01-30 08:06:10 +0100
commit34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a (patch)
tree0c79a6f5579244f56c4c9eb1d9e686f29e6c3c67 /net/sunrpc/clnt.c
parentSUNRPC: rpcb_getport_sync() passes incorrect address size to rpc_create() (diff)
downloadkernel-qcow2-linux-34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a.tar.gz
kernel-qcow2-linux-34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a.tar.xz
kernel-qcow2-linux-34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a.zip
SUNRPC: Don't bother changing the sigmask for asynchronous RPC calls
The caller will never sleep in rpc_execute, so don't bother setting the sigmask. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/clnt.c')
-rw-r--r--net/sunrpc/clnt.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index e775ca793249..924916ceaa43 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -579,9 +579,12 @@ struct rpc_task *rpc_run_task(const struct rpc_task_setup *task_setup_data)
}
atomic_inc(&task->tk_count);
/* Mask signals on synchronous RPC calls and RPCSEC_GSS upcalls */
- rpc_task_sigmask(task, &oldset);
- rpc_execute(task);
- rpc_restore_sigmask(&oldset);
+ if (!RPC_IS_ASYNC(task)) {
+ rpc_task_sigmask(task, &oldset);
+ rpc_execute(task);
+ rpc_restore_sigmask(&oldset);
+ } else
+ rpc_execute(task);
ret = task;
out:
return ret;