• NeilBrown's avatar
    md: never advance 'events' counter by more than 1. · 51d5668c
    NeilBrown authored
    When assembling arrays, md allows two devices to have different event
    counts as long as the difference is only '1'.  This is to cope with
    a system failure between updating the metadata on two difference
    devices.
    
    However there are currently times when we update the event count by
    2.  This was done to keep the event count even when the array is clean
    and odd when it is dirty, which allows us to avoid writing common
    update to spare devices and so allow those spares to go to sleep.
    
    This is bad for the above reason.  So change it to never increase by
    two.  This means that the alignment between 'odd/even' and
    'clean/dirty' might take a little longer to attain, but that is only a
    small cost.  The spares will get a few more updates but that will
    still be spared (;-) most updates and can still go to sleep.
    
    Prior to this patch there was a small chance that after a crash an
    array would fail to assemble due to the overly large event count
    mismatch.
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    51d5668c
md.c 178 KB