diff options
Diffstat (limited to 'drivers/md/raid1.c')
-rw-r--r-- | drivers/md/raid1.c | 3 |
1 files changed, 2 insertions, 1 deletions
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) | |||
2196 | if (rdev->badblocks.shift < 0) | 2196 | if (rdev->badblocks.shift < 0) |
2197 | return 0; | 2197 | return 0; |
2198 | 2198 | ||
2199 | block_sectors = 1 << rdev->badblocks.shift; | 2199 | block_sectors = roundup(1 << rdev->badblocks.shift, |
2200 | bdev_logical_block_size(rdev->bdev) >> 9); | ||
2200 | sector = r1_bio->sector; | 2201 | sector = r1_bio->sector; |
2201 | sectors = ((sector + block_sectors) | 2202 | sectors = ((sector + block_sectors) |
2202 | & ~(sector_t)(block_sectors - 1)) | 2203 | & ~(sector_t)(block_sectors - 1)) |