• NeilBrown's avatar
    md: never clear bit from the write-intent bitmap when the array is degraded. · d0a4bb49
    NeilBrown authored
    
    It is safe to clear a bit from the write-intent bitmap for a raid1
    if we know the data has been written to all devices, which is
    what the current test does.
    
    But it is not always safe to update the 'events_cleared' counter in
    that case.  This is because one request could complete successfully
    after some other request has partially failed.
    
    So simply disable the clearing and updating of events_cleared whenever
    the array is degraded.  This might end up not clearing some bits that
    could safely be cleared, but it is safest approach.
    
    Note that the bug fixed here did not risk corrupting data by letting
    the array get out-of-sync.  Rather it meant that when a device is
    removed and re-added to the array, it might incorrectly require a full
    recovery rather than just recovering based on the bitmap.
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    d0a4bb49
bitmap.c 43.9 KB