diff options
author | Jiri Kosina <jkosina@suse.cz> | 2018-11-06 13:57:02 +0100 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2018-11-06 13:57:02 +0100 |
commit | 0c7244209588630a9b45e52490ef1390e04499a6 (patch) | |
tree | d60f5610f9b36ff05ed5202396c811628bacdb61 /drivers/md/raid5.c | |
parent | 399474e4c1100bca264ed14fa3ad0d68fab484d8 (diff) | |
parent | eb7046e9bf466cebfcfbcdf640e41d9e3a80086c (diff) | |
download | talos-op-linux-0c7244209588630a9b45e52490ef1390e04499a6.tar.gz talos-op-linux-0c7244209588630a9b45e52490ef1390e04499a6.zip |
Merge branch 'master' into for-4.20/upstream-fixes
Pull in a merge commit that brought in 3b692c55e58d ("HID: asus: only
support backlight when it's not driven by WMI") so that fixup could be
applied on top of it.
Diffstat (limited to 'drivers/md/raid5.c')
-rw-r--r-- | drivers/md/raid5.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index e4e98f47865d..4990f0319f6c 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -2681,6 +2681,18 @@ static void raid5_error(struct mddev *mddev, struct md_rdev *rdev) pr_debug("raid456: error called\n"); spin_lock_irqsave(&conf->device_lock, flags); + + if (test_bit(In_sync, &rdev->flags) && + mddev->degraded == conf->max_degraded) { + /* + * Don't allow to achieve failed state + * Don't try to recover this device + */ + conf->recovery_disabled = mddev->recovery_disabled; + spin_unlock_irqrestore(&conf->device_lock, flags); + return; + } + set_bit(Faulty, &rdev->flags); clear_bit(In_sync, &rdev->flags); mddev->degraded = raid5_calc_degraded(conf); |