diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-01-15 14:17:11 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-01-30 02:06:10 -0500 |
commit | 34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a (patch) | |
tree | 0c79a6f5579244f56c4c9eb1d9e686f29e6c3c67 /net | |
parent | afc881124b8aff83c7a28269ef9d9cfce543256c (diff) | |
download | talos-op-linux-34f5b4662bf4b54f22b32ce76ce70eccd7ebc68a.tar.gz talos-op-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')
-rw-r--r-- | net/sunrpc/clnt.c | 9 |
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; |