[lkml]   [2006]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 001 of 2] md: Avoid backward event updates in md superblock when degraded.

    If we
    - shut down a clean array,
    - restart with one (or more) drive(s) missing
    - make some changes
    - pause, so that they array gets marked 'clean',
    the event count on the superblock of included drives
    will be the same as that of the removed drives.
    So adding the removed drive back in will cause it
    to be included with no resync.

    To avoid this, we only update the eventcount backwards when the array
    is not degraded. In this case there can (should) be no non-connected
    drives that we can get confused with, and this is the particular case
    where updating-backwards is valuable.

    Signed-off-by: Neil Brown <>

    ### Diffstat output
    ./drivers/md/md.c | 13 +++++++++++++
    1 file changed, 13 insertions(+)

    diff .prev/drivers/md/md.c ./drivers/md/md.c
    --- .prev/drivers/md/md.c 2006-08-24 17:03:33.000000000 +1000
    +++ ./drivers/md/md.c 2006-08-24 17:03:47.000000000 +1000
    @@ -1597,6 +1597,19 @@ void md_update_sb(mddev_t * mddev)

    + if (mddev->degraded && mddev->sb_dirty == 3)
    + /* If the array is degraded, then skipping spares is both
    + * dangerous and fairly pointless.
    + * Dangerous because a device that was removed from the array
    + * might have a event_count that still looks up-to-date,
    + * so it can be re-added without a resync.
    + * Pointless because if there are any spares to skip,
    + * then a recovery will happen and soon that array won't
    + * be degraded any more and the spare can go back to sleep then.
    + */
    + mddev->sb_dirty = 1;
    sync_req = mddev->in_sync;
    mddev->utime = get_seconds();
    if (mddev->sb_dirty == 3)
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at
     \ /
      Last update: 2006-08-24 09:23    [W:0.047 / U:3.888 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site