• NeilBrown's avatar
    md: don't give up looking for spares on first failure-to-add · 60fc1370
    NeilBrown authored
    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: default avatarAnssi Hannula <anssi.hannula@iki.fi>
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    60fc1370
md.c 214 KB