summaryrefslogtreecommitdiffstats
path: root/Incremental.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2008-10-30 09:34:06 +1100
committerNeilBrown <neilb@suse.de>2008-10-30 09:34:06 +1100
commit4ef2f11e28800373f045e1f0c1336f13f89b79c9 (patch)
tree855ebb51cc9edd9eb4f6d73676c178c4b9762542 /Incremental.c
parent2b4ca8f079335c1b3f345ec13da58699aaa0269d (diff)
downloadmdadm-4ef2f11e28800373f045e1f0c1336f13f89b79c9.tar.gz
mdadm-4ef2f11e28800373f045e1f0c1336f13f89b79c9.tar.xz
mdadm-4ef2f11e28800373f045e1f0c1336f13f89b79c9.zip
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 <neilb@suse.de>
Diffstat (limited to 'Incremental.c')
-rw-r--r--Incremental.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/Incremental.c b/Incremental.c
index 5d26b77..d61518a 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)