From: NeilBrown Date: Wed, 29 Oct 2008 22:34:06 +0000 (+1100) Subject: Incremental: fix setting of 'autof' flag. X-Git-Tag: mdadm-2.6.8~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ef2f11e28800373f045e1f0c1336f13f89b79c9;p=thirdparty%2Fmdadm.git Incremental: fix setting of 'autof' flag. When doing auto-assembly, the 'autof' flag from array lines in mdadm.conf was being ignored. Signed-off-by: NeilBrown --- diff --git a/Incremental.c b/Incremental.c index 5d26b77f..d61518ab 100644 --- a/Incremental.c +++ b/Incremental.c @@ -83,12 +83,8 @@ int Incremental(char *devname, int verbose, int runstop, int dfd, mdfd; char *avail; int active_disks; - - struct createinfo *ci = conf_get_create_info(); - if (autof == 0) - autof = ci->autof; /* 1/ Check if devices is permitted by mdadm.conf */ @@ -221,6 +217,16 @@ int Incremental(char *devname, int verbose, int runstop, /* - Choose a free, high number. */ /* - Use a partitioned device unless strong suggestion not to. */ /* e.g. auto=md */ + + /* There are three possible sources for 'autof': command line, + * ARRAY line in mdadm.conf, or CREATE line in mdadm.conf. + * They have precedence in that order. + */ + if (autof == 0 && match) + autof = match->autof; + if (autof == 0) + autof = ci->autof; + if (match && (rv = is_standard(match->devname, &devnum))) { devnum = (rv > 0) ? (-1-devnum) : devnum; } else if ((mp = map_by_uuid(&map, info.uuid)) != NULL)