aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid10.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/raid10.c')
-rw-r--r--drivers/md/raid10.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index fb9062b5022c..8fe3aa469987 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -3678,9 +3678,15 @@ static int raid10_resize(struct mddev *mddev, sector_t sectors)
3678 3678
3679 oldsize = raid10_size(mddev, 0, 0); 3679 oldsize = raid10_size(mddev, 0, 0);
3680 size = raid10_size(mddev, sectors, 0); 3680 size = raid10_size(mddev, sectors, 0);
3681 md_set_array_sectors(mddev, size); 3681 if (mddev->external_size &&
3682 if (mddev->array_sectors > size) 3682 mddev->array_sectors > size)
3683 return -EINVAL; 3683 return -EINVAL;
3684 if (mddev->bitmap) {
3685 int ret = bitmap_resize(mddev->bitmap, size, 0, 0);
3686 if (ret)
3687 return ret;
3688 }
3689 md_set_array_sectors(mddev, size);
3684 set_capacity(mddev->gendisk, mddev->array_sectors); 3690 set_capacity(mddev->gendisk, mddev->array_sectors);
3685 revalidate_disk(mddev->gendisk); 3691 revalidate_disk(mddev->gendisk);
3686 if (sectors > mddev->dev_sectors && 3692 if (sectors > mddev->dev_sectors &&