From: Nate Dailey Date: Thu, 12 Feb 2015 17:02:09 +0000 (-0500) Subject: md/raid1: round up to bdev_logical_block_size in narrow_write_error X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=ab713cdc6f70da62c254c4acf77a0cfcda87b7f5;p=openwrt%2Fstaging%2Fblogic.git md/raid1: round up to bdev_logical_block_size in narrow_write_error This modifies raid1's narrow_write_error to round up block_sectors to the device's logical block size. This prevents sd complaining about "Bad block number requested" for non-512-byte sector disks. Signed-off-by: Nate Dailey Signed-off-by: NeilBrown --- diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 5dd0c2e59ab9..4153da5d4011 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -2196,7 +2196,8 @@ static int narrow_write_error(struct r1bio *r1_bio, int i) if (rdev->badblocks.shift < 0) return 0; - block_sectors = 1 << rdev->badblocks.shift; + block_sectors = roundup(1 << rdev->badblocks.shift, + bdev_logical_block_size(rdev->bdev) >> 9); sector = r1_bio->sector; sectors = ((sector + block_sectors) & ~(sector_t)(block_sectors - 1))