• NeilBrown's avatar
    md/raid5: allow new reshape modes to be restarted in the middle. · 67ac6011
    NeilBrown authored
    md/raid5 doesn't allow a reshape to restart if it involves writing
    over the same part of disk that it would be reading from.
    This happens at the beginning of a reshape that increases the number
    of devices, at the end of a reshape that decreases the number of
    devices, and continuously for a reshape that does not change the
    number of devices.
    
    The current code is correct for the "increase number of devices"
    case as the critical section at the start is handled by userspace
    performing a backup.
    
    It does not work for reducing the number of devices, or the
    no-change case.
    For 'reducing', we need to invert the test.  For no-change we cannot
    really be sure things will be safe, so simply require the array
    to be read-only, which is how the user-space code which carefully
    starts such arrays works.
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    67ac6011
raid5.c 151 KB