From: NeilBrown Date: Thu, 12 Apr 2012 06:12:20 +0000 (+1000) Subject: md: teach sync_page_io about new_data_offset. X-Git-Tag: next-20120417~32^2~7 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=359bfbea0198fae7e71964d1ff9adbf4c0415ea1;p=karo-tx-linux.git md: teach sync_page_io about new_data_offset. Some code in raid1 and raid10 use sync_page_io to read/write pages when responding to read errors. As we will shortly support changing data_offset for raid10, this function must understand new_data_offset. So add that understanding. Signed-off-by: NeilBrown --- diff --git a/drivers/md/md.c b/drivers/md/md.c index 5f06cf2f062b..9e466e8f5865 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -886,6 +886,10 @@ int sync_page_io(struct md_rdev *rdev, sector_t sector, int size, rdev->meta_bdev : rdev->bdev; if (metadata_op) bio->bi_sector = sector + rdev->sb_start; + else if (rdev->mddev->reshape_position != MaxSector && + (rdev->mddev->reshape_backwards == + (sector >= rdev->mddev->reshape_position))) + bio->bi_sector = sector + rdev->new_data_offset; else bio->bi_sector = sector + rdev->data_offset; bio_add_page(bio, page, size, 0);