diff options
author | Neil Brown <neilb@suse.de> | 2008-07-12 20:27:40 +1000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2008-07-12 20:27:40 +1000 |
commit | bfa44e2e7afb88a9f2d6083f8ff31c2d50cc78dc (patch) | |
tree | 4a4e140f3e3e4611320e872bc2bb88b622dc83ce /mdmon.c | |
parent | 4d43913ce07ffbcb1ae8e7bdd06a4bd67cd07791 (diff) | |
download | mdadm-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.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -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", |