Start mdmon during incremental assembly of container
This commit is contained in:
parent
25dbe93ab4
commit
75aa18b53c
|
@ -849,11 +849,35 @@ int Incremental_container(struct supertype *st, char *devname, int verbose,
|
|||
default:
|
||||
sysfs_set_str(sra, NULL, "array_state",
|
||||
"readonly");
|
||||
/* start mdmon if needed. */
|
||||
if (mdmon_running(st->container_dev))
|
||||
signal_mdmon(st->container_dev);
|
||||
else {
|
||||
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 */
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (verbose >= 0)
|
||||
printf("Started %s with %d devices\n",
|
||||
chosen_name, working);
|
||||
/* FIXME should have an O_EXCL and wait for read-auto */
|
||||
} else
|
||||
if (verbose >= 0)
|
||||
printf("%s assembled with %d devices but "
|
||||
|
|
|
@ -2350,6 +2350,7 @@ static int load_super_ddf_all(struct supertype *st, int fd,
|
|||
st->ss = &super_ddf_container;
|
||||
st->minor_version = 0;
|
||||
st->max_devs = 512;
|
||||
st->container_dev = fd2devnum(fd);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue