diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2015-10-22 10:45:58 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2015-10-22 22:26:30 +0200 |
commit | 075f85dcb518d7d9c2452af4165f44ba991a1258 (patch) | |
tree | 1069365d13281f3fd3aec1f6e2d32f6638d1721f | |
parent | d2c4ce254bac0f607676b10e38ba2f2ebee709b8 (diff) | |
download | lvm2-075f85dcb518d7d9c2452af4165f44ba991a1258.tar.gz |
tools: do not change signals for memlocked daemons
-rw-r--r-- | lib/misc/lvm-signal.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/misc/lvm-signal.c b/lib/misc/lvm-signal.c index 0d61e73d5..9250560ca 100644 --- a/lib/misc/lvm-signal.c +++ b/lib/misc/lvm-signal.c @@ -15,6 +15,7 @@ #include "lib.h" #include "lvm-signal.h" +#include "memlock.h" #include <signal.h> @@ -60,6 +61,8 @@ void sigint_allow(void) struct sigaction handler; sigset_t sigs; + if (memlock_count_daemon()) + return; /* * Do not overwrite the backed-up handler data - * just increase nesting count. @@ -91,6 +94,9 @@ void sigint_allow(void) void sigint_restore(void) { + if (memlock_count_daemon()) + return; + if (!_handler_installed || --_handler_installed >= MAX_SIGINTS) return; @@ -112,6 +118,9 @@ void block_signals(uint32_t flags __attribute__((unused))) { sigset_t set; + if (memlock_count_daemon()) + return; + if (_signals_blocked) return; @@ -130,6 +139,9 @@ void block_signals(uint32_t flags __attribute__((unused))) void unblock_signals(void) { + if (memlock_count_daemon()) + return; + /* Don't unblock signals while any locks are held */ if (!_signals_blocked) return; |