summaryrefslogtreecommitdiffstats
path: root/mdmon.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2008-07-12 20:27:40 +1000
committerNeil Brown <neilb@suse.de>2008-07-12 20:27:40 +1000
commitbfa44e2e7afb88a9f2d6083f8ff31c2d50cc78dc (patch)
tree4a4e140f3e3e4611320e872bc2bb88b622dc83ce /mdmon.c
parent4d43913ce07ffbcb1ae8e7bdd06a4bd67cd07791 (diff)
downloadmdadm-bfa44e2e7afb88a9f2d6083f8ff31c2d50cc78dc.tar.gz
mdadm-bfa44e2e7afb88a9f2d6083f8ff31c2d50cc78dc.tar.xz
mdadm-bfa44e2e7afb88a9f2d6083f8ff31c2d50cc78dc.zip
Revise message passing code.
More here
Diffstat (limited to 'mdmon.c')
-rw-r--r--mdmon.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/mdmon.c b/mdmon.c
index 08f4445..407f637 100644
--- a/mdmon.c
+++ b/mdmon.c
@@ -177,6 +177,7 @@ int main(int argc, char *argv[])
struct mdinfo *mdi, *di;
struct supertype *container;
sigset_t set;
+ struct sigaction act;
if (argc != 2) {
fprintf(stderr, "Usage: md-manage /device/name/for/container\n");
@@ -280,7 +281,11 @@ int main(int argc, char *argv[])
sigemptyset(&set);
sigaddset(&set, SIGUSR1);
sigprocmask(SIG_BLOCK, &set, NULL);
- signal(SIGUSR1, wake_me);
+ act.sa_handler = wake_me;
+ act.sa_flags = 0;
+ sigaction(SIGUSR1, &act, NULL);
+ act.sa_handler = SIG_IGN;
+ sigaction(SIGPIPE, &act, NULL);
if (clone_monitor(container) < 0) {
fprintf(stderr, "md-manage: failed to start monitor process: %s\n",