• NeilBrown's avatar
    md/raid5: More careful check for "has array failed". · 674806d6
    NeilBrown authored
    When we are reshaping an array, the device failure combinations
    that cause us to decide that the array as failed are more subtle.
    
    In particular, any 'spare' will be fully in-sync in the section
    of the array that has already been reshaped, thus failures that
    affect only that section are less critical.
    
    So encode this subtlety in a new function and call it as appropriate.
    
    The case that showed this problem was a 4 drive RAID5 to 8 drive RAID6
    conversion where the last two devices failed.
    This resulted in:
    
      good good good good incomplete good good failed failed
    
    while converting a 5-drive RAID6 to 8 drive RAID5
    The incomplete device causes the whole array to look bad,
    bad as it was actually good for the section that had been
    converted to 8-drives, all the data was actually safe.
    Reported-by: default avatarTerry Morris <tbmorris@tbmorris.com>
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    674806d6
raid5.c 167 KB