lkml.org 
[lkml]   [2008]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 58/73] md: fix data corruption when a degraded raid5 array is reshaped
    2.6.23-stable review patch.  If anyone has any objections, please let us know.
    ------------------
    From: Dan Williams <dan.j.williams@intel.com>

    patch 0f94e87cdeaaac9f0f9a28a5dd2a5070b87cd3e8 in mainline.

    We currently do not wait for the block from the missing device to be
    computed from parity before copying data to the new stripe layout.

    The change in the raid6 code is not techincally needed as we don't delay
    data block recovery in the same way for raid6 yet. But making the change
    now is safer long-term.

    This bug exists in 2.6.23 and 2.6.24-rc

    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Acked-by: Neil Brown <neilb@suse.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/md/raid5.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    --- a/drivers/md/raid5.c
    +++ b/drivers/md/raid5.c
    @@ -2875,7 +2875,8 @@ static void handle_stripe5(struct stripe
    md_done_sync(conf->mddev, STRIPE_SECTORS, 1);
    }

    - if (s.expanding && s.locked == 0)
    + if (s.expanding && s.locked == 0 &&
    + !test_bit(STRIPE_OP_COMPUTE_BLK, &sh->ops.pending))
    handle_stripe_expansion(conf, sh, NULL);

    if (sh->ops.count)
    @@ -3077,7 +3078,8 @@ static void handle_stripe6(struct stripe
    md_done_sync(conf->mddev, STRIPE_SECTORS, 1);
    }

    - if (s.expanding && s.locked == 0)
    + if (s.expanding && s.locked == 0 &&
    + !test_bit(STRIPE_OP_COMPUTE_BLK, &sh->ops.pending))
    handle_stripe_expansion(conf, sh, &r6s);

    spin_unlock(&sh->lock);
    --


    \
     
     \ /
      Last update: 2008-02-07 01:27    [W:0.020 / U:30.768 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site