diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-01-03 03:55:19 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-01-06 14:58:45 -0500 |
commit | 2bd615797ef32ec06ef0ee44198a7aecc21ffd8c (patch) | |
tree | 5ef07d09b9e3674dffce1a24dfb46e6d23410a72 /net/sunrpc | |
parent | fe650407a86823bcafbfbee96c7bc6a1b5cd1c76 (diff) |
SUNRPC: Ensure that SIGKILL will always terminate a synchronous RPC call.
...and make sure that the "intr" flag also enables SIGHUP and SIGTERM to
interrupt RPC calls too (as per the Solaris implementation).
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/clnt.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index f025b7e72353..b23c0d328c9c 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c | |||
@@ -386,11 +386,11 @@ static const struct rpc_call_ops rpc_default_ops = { | |||
386 | * Export the signal mask handling for synchronous code that | 386 | * Export the signal mask handling for synchronous code that |
387 | * sleeps on RPC calls | 387 | * sleeps on RPC calls |
388 | */ | 388 | */ |
389 | #define RPC_INTR_SIGNALS (sigmask(SIGINT) | sigmask(SIGQUIT) | sigmask(SIGKILL)) | 389 | #define RPC_INTR_SIGNALS (sigmask(SIGHUP) | sigmask(SIGINT) | sigmask(SIGQUIT) | sigmask(SIGTERM)) |
390 | 390 | ||
391 | static void rpc_save_sigmask(sigset_t *oldset, int intr) | 391 | static void rpc_save_sigmask(sigset_t *oldset, int intr) |
392 | { | 392 | { |
393 | unsigned long sigallow = 0; | 393 | unsigned long sigallow = sigmask(SIGKILL); |
394 | sigset_t sigmask; | 394 | sigset_t sigmask; |
395 | 395 | ||
396 | /* Block all signals except those listed in sigallow */ | 396 | /* Block all signals except those listed in sigallow */ |