[PATCH] md: restart a (raid5) reshape that has been aborted due to a read/write error
An error always aborts any resync/recovery/reshape on the understanding that it will immediately be restarted if that still makes sense. However a reshape currently doesn't get restarted. With this patch it does. To avoid restarting when it is not possible to do work, we call into the personality to check that a reshape is ok, and strengthen raid5_check_reshape to fail if there are too many failed devices. We also break some code out into a separate function: remove_and_add_spares as the indent level for that code was getting crazy. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
d1b5380c7f
commit
b4c4c7b809
@ -3814,6 +3814,8 @@ static int raid5_check_reshape(mddev_t *mddev)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
if (mddev->degraded > conf->max_degraded)
|
||||
return -EINVAL;
|
||||
/* looks like we might be able to manage this */
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user