From 5dcfcb715d91f7d2f45afaaabb93ad311e384ea6 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 14 Jul 2008 14:59:32 -0700 Subject: [PATCH] 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 --- Create.c | 2 +- Incremental.c | 2 +- mdadm.h | 1 + util.c | 10 ++++++++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Create.c b/Create.c index bef221ad..c51b7eb0 100644 --- a/Create.c +++ b/Create.c @@ -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()) { diff --git a/Incremental.c b/Incremental.c index 266111ae..e9a54578 100644 --- a/Incremental.c +++ b/Incremental.c @@ -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()) { diff --git a/mdadm.h b/mdadm.h index 72104da1..3672bc9d 100644 --- a/mdadm.h +++ b/mdadm.h @@ -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); diff --git a/util.c b/util.c index 0c1dfeeb..283eeb6d 100644 --- a/util.c +++ b/util.c @@ -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) { -- 2.39.2