From 3ead82b31833894ef6856235e9408ae350ed21e2 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Wed, 12 Jun 2013 07:37:43 -0700 Subject: [PATCH] --- yaml --- r: 377043 b: refs/heads/master c: 5026d7a9b2f3eb1f9bda66c18ac6bc3036ec9020 h: refs/heads/master i: 377041: 7abb162db2a75253d280774a0e1803815b54844c 377039: 9f2bc60bf93ec5da1b8358781cdfe4405e96b4a9 v: v3 --- [refs] | 2 +- trunk/drivers/md/raid1.c | 4 ++-- trunk/drivers/md/raid10.c | 3 +-- trunk/drivers/md/raid5.c | 4 +++- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 88e2c85e55f4..7802a04cf302 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e2d59925221cd562e07fee38ec8839f7209ae603 +refs/heads/master: 5026d7a9b2f3eb1f9bda66c18ac6bc3036ec9020 diff --git a/trunk/drivers/md/raid1.c b/trunk/drivers/md/raid1.c index 5208e9d1aff0..e02ad4450907 100644 --- a/trunk/drivers/md/raid1.c +++ b/trunk/drivers/md/raid1.c @@ -2837,8 +2837,8 @@ static int run(struct mddev *mddev) return PTR_ERR(conf); if (mddev->queue) - blk_queue_max_write_same_sectors(mddev->queue, - mddev->chunk_sectors); + blk_queue_max_write_same_sectors(mddev->queue, 0); + rdev_for_each(rdev, mddev) { if (!mddev->gendisk) continue; diff --git a/trunk/drivers/md/raid10.c b/trunk/drivers/md/raid10.c index aa9ed304951e..06c2cbe046e2 100644 --- a/trunk/drivers/md/raid10.c +++ b/trunk/drivers/md/raid10.c @@ -3651,8 +3651,7 @@ static int run(struct mddev *mddev) if (mddev->queue) { blk_queue_max_discard_sectors(mddev->queue, mddev->chunk_sectors); - blk_queue_max_write_same_sectors(mddev->queue, - mddev->chunk_sectors); + blk_queue_max_write_same_sectors(mddev->queue, 0); blk_queue_io_min(mddev->queue, chunk_size); if (conf->geo.raid_disks % conf->geo.near_copies) blk_queue_io_opt(mddev->queue, chunk_size * conf->geo.raid_disks); diff --git a/trunk/drivers/md/raid5.c b/trunk/drivers/md/raid5.c index 4a7be455d6d8..26ee39936a28 100644 --- a/trunk/drivers/md/raid5.c +++ b/trunk/drivers/md/raid5.c @@ -5465,7 +5465,7 @@ static int run(struct mddev *mddev) if (mddev->major_version == 0 && mddev->minor_version > 90) rdev->recovery_offset = reshape_offset; - + if (rdev->recovery_offset < reshape_offset) { /* We need to check old and new layout */ if (!only_parity(rdev->raid_disk, @@ -5588,6 +5588,8 @@ static int run(struct mddev *mddev) */ mddev->queue->limits.discard_zeroes_data = 0; + blk_queue_max_write_same_sectors(mddev->queue, 0); + rdev_for_each(rdev, mddev) { disk_stack_limits(mddev->gendisk, rdev->bdev, rdev->data_offset << 9);