• NeilBrown's avatar
    Don't unconditionally set in_sync on newly added device in raid5_reshape · 7ef90146
    NeilBrown authored
    When a reshape finds that it can add spare devices into the array,
    those devices might already be 'in_sync' if they are beyond the old
    size of the array, or they might not if they are within the array.
    
    The first case happens when we change an N-drive RAID5 to an
    N+1-drive RAID5.
    The second happens when we convert an N-drive RAID5 to an
    N+1-drive RAID6.
    
    So set the flag more carefully.
    Also, ->recovery_offset is only meaningful when the flag is clear,
    so only set it in that case.
    
    This change needs the preceding two to ensure that the non-in_sync
    device doesn't get evicted from the array when it is stopped, in the
    case where v0.90 metadata is used.
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    7ef90146
raid5.c 161 KB