diff options
author | NeilBrown <neilb@suse.de> | 2010-02-08 14:30:46 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2010-02-08 17:26:18 +1100 |
commit | fa716c83c5be8093e663e260e46e73ea9ad6facf (patch) | |
tree | d114ff6697fd4c85c090facb2a13ba52d19c1eeb /managemon.c | |
parent | 58a4ba2a6b66ac14fa0ebaf0ce40326582d31429 (diff) | |
download | mdadm-fa716c83c5be8093e663e260e46e73ea9ad6facf.tar.gz mdadm-fa716c83c5be8093e663e260e46e73ea9ad6facf.tar.xz mdadm-fa716c83c5be8093e663e260e46e73ea9ad6facf.zip |
mdmon: insist on creating .pid file at startup.
Now that we don't "mdadm --takeover" until /var/run is writable
there is no need to continually try to create files in there.
So only create these files at startup and fail if they cannot be
made. This means that to start an array with externally managed
metadata, either /var/run or ALT_RUN (e.g. /lib/init/rw) must be
writable. To 'takeover' from a previous mdmon instance, /var/run
must be writable.
This means we don't need to worry about SIGHUP (which was once used to
tell us it was time to create .pid) and SIGALRM.
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'managemon.c')
-rw-r--r-- | managemon.c | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/managemon.c b/managemon.c index e01d13b..037406f 100644 --- a/managemon.c +++ b/managemon.c @@ -680,8 +680,6 @@ void do_manager(struct supertype *container) sigprocmask(SIG_UNBLOCK, NULL, &set); sigdelset(&set, SIGUSR1); - sigdelset(&set, SIGHUP); - sigdelset(&set, SIGALRM); sigdelset(&set, SIGTERM); do { @@ -700,30 +698,6 @@ void do_manager(struct supertype *container) read_sock(container); - if (socket_hup_requested) { - /* Try to create pid file and socket in - * main or alternate RUN directory. - */ - char *dir = VAR_RUN; - if (mkdir(dir, 0600) < 0 && errno != EEXIST) { - char *dir = ALT_RUN; - if (mkdir(dir, 0600) < 0 && errno != EEXIST) - dir = NULL; - } - if (dir && !sigterm && - (container->sock < 0 || - strcmp(dir, pid_dir) != 0)) { - close(container->sock); - remove_pidfile(container->devname); - pid_dir = dir; - container->sock = make_control_sock(container->devname); - make_pidfile(container->devname); - } - socket_hup_requested = 0; - } - if (container->sock < 0) - alarm(30); - free_mdstat(mdstat); } remove_old(); |