]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Monitor: handle v.quick removal of devices better.
authorNeilBrown <neilb@suse.de>
Tue, 22 Mar 2011 03:47:55 +0000 (14:47 +1100)
committerNeilBrown <neilb@suse.de>
Wed, 23 Mar 2011 00:09:48 +0000 (11:09 +1100)
If a device fails and then is removed before Monitor sees
the failure, GET_DISK_INFO returns nothing so Monitor relies
on mdstat info where '_' is incorrectly interpreted as 'a spare'.

We should treat '_' as 'removed' - that is safer.

Without this, a v.quick fail+remove gets reported as 'Failed' then
'SpareActive'.

Signed-off-by: NeilBrown <neilb@suse.de>
Monitor.c

index 0f0adb54502186095c0463cf0818d70fb95b19fc..7e8fa85721f422477a1994844171fd455f4f7eca 100644 (file)
--- a/Monitor.c
+++ b/Monitor.c
@@ -369,7 +369,7 @@ int Monitor(mddev_dev_t devlist,
                                } else if (mse &&  mse->pattern && i < (int)strlen(mse->pattern)) {
                                        switch(mse->pattern[i]) {
                                        case 'U': newstate = 6 /* ACTIVE/SYNC */; break;
-                                       case '_': newstate = 0; break;
+                                       case '_': newstate = 8 /* REMOVED */; break;
                                        }
                                        disc.major = disc.minor = 0;
                                }