diff options
author | NeilBrown <neilb@suse.de> | 2008-10-29 23:34:06 +0100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2008-10-29 23:34:06 +0100 |
commit | 4ef2f11e28800373f045e1f0c1336f13f89b79c9 (patch) | |
tree | 855ebb51cc9edd9eb4f6d73676c178c4b9762542 | |
parent | Fix --incremental assembly of partitions arrays. (diff) | |
download | 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>
-rw-r--r-- | Incremental.c | 14 |
1 files changed, 10 insertions, 4 deletions
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) |