lkml.org 
[lkml]   [2012]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 129/187] md/raid10: Dont try to recovery unmatched (and unused) chunks.
    Date
    From: Greg KH <gregkh@linuxfoundation.org>

    3.4-stable review patch. If anyone has any objections, please let me know.

    ------------------

    From: NeilBrown <neilb@suse.de>

    commit fc448a18ae6219af9a73257b1fbcd009efab4a81 upstream.

    If a RAID10 has an odd number of chunks - as might happen when there
    are an odd number of devices - the last chunk has no pair and so is
    not mirrored. We don't store data there, but when recovering the last
    device in an array we retry to recover that last chunk from a
    non-existent location. This results in an error, and the recovery
    aborts.

    When we get to that last chunk we should just stop - there is nothing
    more to do anyway.

    This bug has been present since the introduction of RAID10, so the
    patch is appropriate for any -stable kernel.

    Reported-by: Christian Balzer <chibi@gol.com>
    Tested-by: Christian Balzer <chibi@gol.com>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/md/raid10.c | 6 ++++++
    1 file changed, 6 insertions(+)

    --- a/drivers/md/raid10.c
    +++ b/drivers/md/raid10.c
    @@ -2772,6 +2772,12 @@ static sector_t sync_request(struct mdde
    /* want to reconstruct this device */
    rb2 = r10_bio;
    sect = raid10_find_virt(conf, sector_nr, i);
    + if (sect >= mddev->resync_max_sectors) {
    + /* last stripe is not complete - don't
    + * try to recover this sector.
    + */
    + continue;
    + }
    /* Unless we are doing a full sync, or a replacement
    * we only need to recover the block if it is set in
    * the bitmap



    \
     
     \ /
      Last update: 2012-07-13 02:02    [W:5.264 / U:0.664 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site