]> git.baikalelectronics.ru Git - kernel.git/commit
md: don't give up looking for spares on first failure-to-add
authorNeilBrown <neilb@suse.de>
Thu, 22 Dec 2011 22:57:19 +0000 (09:57 +1100)
committerNeilBrown <neilb@suse.de>
Thu, 22 Dec 2011 22:57:19 +0000 (09:57 +1100)
commit9ef1fc78a114e3b94523bad1e0f98bd6871ca875
tree163094eb4ae229f9263bfd05b788f29cc14e94f5
parent0a59f3a0bf5e9cf525a1c0f8a09e452617f28d2c
md: don't give up looking for spares on first failure-to-add

Before performing a recovery we try to remove any spares that
might not be working, then add any that might have become relevant.

Currently we abort on the first spare that cannot be added.
This is a false optimisation.
It is conceivable that - depending on rules in the personality - a
subsequent spare might be accepted.
Also the loop does other things like count the available spares and
reset the 'recovery_offset' value.

If we abort early these might not happen properly.

So remove the early abort.

In particular if you have an array what is undergoing recovery and
which has extra spares, then the recovery may not restart after as
reboot as the could of 'spares' might end up as zero.

Reported-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c