mdadm: add an environment variable to prevent auto-launching mdmon

Useful for attaching gdb to mdmon before any action is taken on the array.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
Dan Williams 2008-07-14 14:59:32 -07:00
parent 00451d9874
commit 5dcfcb715d
4 changed files with 13 additions and 2 deletions

View File

@ -767,7 +767,7 @@ int Create(struct supertype *st, char *mddev, int mdfd,
if (verbose >= 0)
fprintf(stderr, Name ": array %s started.\n", mddev);
if (st->ss->external && st->subarray[0]) {
if (need_mdmon) {
if (need_mdmon && !env_no_mdmon()) {
int dn = st->container_dev;
int i;
switch(fork()) {

View File

@ -838,7 +838,7 @@ int Incremental_container(struct supertype *st, char *devname, int verbose,
/* start mdmon if needed. */
if (mdmon_running(st->container_dev))
signal_mdmon(st->container_dev);
else {
else if (!env_no_mdmon()) {
int dn = st->container_dev;
int i;
switch(fork()) {

View File

@ -773,6 +773,7 @@ extern int open_container(int fd);
extern int mdmon_running(int devnum);
extern int signal_mdmon(int devnum);
extern int env_no_mdmon(void);
extern char *devnum2devname(int num);
extern int devname2devnum(char *name);

10
util.c
View File

@ -1074,6 +1074,16 @@ int signal_mdmon(int devnum)
return 0;
}
int env_no_mdmon(void)
{
char *val = getenv("MDADM_NO_MDMON");
if (val && atoi(val) == 1)
return 1;
return 0;
}
int flush_metadata_updates(struct supertype *st)
{