diff options
author | NeilBrown <neilb@suse.de> | 2008-07-18 16:37:11 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2008-07-18 16:37:11 +1000 |
commit | 8850ee3e1ea01d4ded658fd83002fd93a81d6e99 (patch) | |
tree | 3f1a4dc0467a8d3bc8b94c9191b9326aeb676e69 /Incremental.c | |
parent | daf7a3ce96e517360b0456c3a9cca0771b94462d (diff) |
Factor common code into new "start_mdmon".
Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'Incremental.c')
-rw-r--r-- | Incremental.c | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/Incremental.c b/Incremental.c index e9a54578..9b222206 100644 --- a/Incremental.c +++ b/Incremental.c @@ -836,28 +836,9 @@ int Incremental_container(struct supertype *st, char *devname, int verbose, sysfs_set_str(sra, NULL, "array_state", "readonly"); /* start mdmon if needed. */ - if (mdmon_running(st->container_dev)) - signal_mdmon(st->container_dev); - else if (!env_no_mdmon()) { - int dn = st->container_dev; - int i; - switch(fork()) { - case 0: - /* FIXME yuk. CLOSE_EXEC?? */ - for (i=3; i < 100; i++) - close(i); - execl("./mdmon", "mdmon", - map_dev(dev2major(dn), - dev2minor(dn), - 1), NULL); - exit(1); - case -1: fprintf(stderr, Name - ": cannot fork. " - "Array remains readonly\n"); - return 1; - default: ; /* parent - good */ - } - } + if (!mdmon_running(st->container_dev)) + start_mdmon(st->container_dev); + ping_monitor(devnum2devname(st->container_dev)); break; } if (verbose >= 0) |