summaryrefslogtreecommitdiffstats
path: root/Assemble.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2008-12-18 14:11:59 +1100
committerNeilBrown <neilb@suse.de>2008-12-18 14:11:59 +1100
commit4e9a6ff778cdc58dcc6897e74cf5ee1d3f73e1f7 (patch)
treeecffef08ae41cfc71292394367a853352382c2a0 /Assemble.c
parent22eba5121632c4b26541fbb04209a90b93c24bcc (diff)
downloadmdadm-4e9a6ff778cdc58dcc6897e74cf5ee1d3f73e1f7.tar.gz
mdadm-4e9a6ff778cdc58dcc6897e74cf5ee1d3f73e1f7.tar.xz
mdadm-4e9a6ff778cdc58dcc6897e74cf5ee1d3f73e1f7.zip
Assemble: don't assume array is 'clean' unless all devices think it is.
This is only significant for --assemble --force where some old devices might be included into the array. If anything looks like it isn't clean, the kernel will not allow a degraded array to be started. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Assemble.c')
-rw-r--r--Assemble.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/Assemble.c b/Assemble.c
index 1d37870..3ee028b 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -749,6 +749,8 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
continue;
devices[j].i.disk.state = desired_state;
+ if (!(devices[j].i.array.state & 1))
+ clean = 0;
if (st->ss->update_super(st, &devices[j].i, "assemble", NULL,
verbose, 0, NULL)) {