diff options
author | Guoqing Jiang <gqjiang@suse.com> | 2017-02-23 22:15:23 -0500 |
---|---|---|
committer | Shaohua Li <shli@fb.com> | 2017-03-09 12:02:18 -0500 |
commit | c94836342192b05d599d6aa3397f732f7a238689 (patch) | |
tree | 17c6407285ffbc1e1c75302b66338b84bb592831 | |
parent | 75df023f4f2188c21181996e28234fef9351ef45 (diff) |
md: move funcs from pers->resize to update_size
raid1_resize and raid5_resize should also check the
mddev->queue if run underneath dm-raid.
And both set_capacity and revalidate_disk are used in
pers->resize such as raid1, raid10 and raid5. So
move them from personality file to common code.
Reviewed-by: NeilBrown <neilb@suse.com>
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
-rw-r--r-- | drivers/md/md.c | 8 | ||||
-rw-r--r-- | drivers/md/raid1.c | 2 | ||||
-rw-r--r-- | drivers/md/raid10.c | 4 | ||||
-rw-r--r-- | drivers/md/raid5.c | 2 |
4 files changed, 6 insertions, 10 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 82bd1f3d2b19..bd15a18485c8 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -6525,8 +6525,12 @@ static int update_size(struct mddev *mddev, sector_t num_sectors) | |||
6525 | return -ENOSPC; | 6525 | return -ENOSPC; |
6526 | } | 6526 | } |
6527 | rv = mddev->pers->resize(mddev, num_sectors); | 6527 | rv = mddev->pers->resize(mddev, num_sectors); |
6528 | if (!rv) | 6528 | if (!rv) { |
6529 | revalidate_disk(mddev->gendisk); | 6529 | if (mddev->queue) { |
6530 | set_capacity(mddev->gendisk, mddev->array_sectors); | ||
6531 | revalidate_disk(mddev->gendisk); | ||
6532 | } | ||
6533 | } | ||
6530 | return rv; | 6534 | return rv; |
6531 | } | 6535 | } |
6532 | 6536 | ||
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index fbc2d7851b49..10c3865e1186 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -3246,8 +3246,6 @@ static int raid1_resize(struct mddev *mddev, sector_t sectors) | |||
3246 | return ret; | 3246 | return ret; |
3247 | } | 3247 | } |
3248 | md_set_array_sectors(mddev, newsize); | 3248 | md_set_array_sectors(mddev, newsize); |
3249 | set_capacity(mddev->gendisk, mddev->array_sectors); | ||
3250 | revalidate_disk(mddev->gendisk); | ||
3251 | if (sectors > mddev->dev_sectors && | 3249 | if (sectors > mddev->dev_sectors && |
3252 | mddev->recovery_cp > mddev->dev_sectors) { | 3250 | mddev->recovery_cp > mddev->dev_sectors) { |
3253 | mddev->recovery_cp = mddev->dev_sectors; | 3251 | mddev->recovery_cp = mddev->dev_sectors; |
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 1443305613c5..c4db6d1fb6a2 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
@@ -3956,10 +3956,6 @@ static int raid10_resize(struct mddev *mddev, sector_t sectors) | |||
3956 | return ret; | 3956 | return ret; |
3957 | } | 3957 | } |
3958 | md_set_array_sectors(mddev, size); | 3958 | md_set_array_sectors(mddev, size); |
3959 | if (mddev->queue) { | ||
3960 | set_capacity(mddev->gendisk, mddev->array_sectors); | ||
3961 | revalidate_disk(mddev->gendisk); | ||
3962 | } | ||
3963 | if (sectors > mddev->dev_sectors && | 3959 | if (sectors > mddev->dev_sectors && |
3964 | mddev->recovery_cp > oldsize) { | 3960 | mddev->recovery_cp > oldsize) { |
3965 | mddev->recovery_cp = oldsize; | 3961 | mddev->recovery_cp = oldsize; |
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 4fb09b3fcb41..6bfedfcf41c1 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -7605,8 +7605,6 @@ static int raid5_resize(struct mddev *mddev, sector_t sectors) | |||
7605 | return ret; | 7605 | return ret; |
7606 | } | 7606 | } |
7607 | md_set_array_sectors(mddev, newsize); | 7607 | md_set_array_sectors(mddev, newsize); |
7608 | set_capacity(mddev->gendisk, mddev->array_sectors); | ||
7609 | revalidate_disk(mddev->gendisk); | ||
7610 | if (sectors > mddev->dev_sectors && | 7608 | if (sectors > mddev->dev_sectors && |
7611 | mddev->recovery_cp > mddev->dev_sectors) { | 7609 | mddev->recovery_cp > mddev->dev_sectors) { |
7612 | mddev->recovery_cp = mddev->dev_sectors; | 7610 | mddev->recovery_cp = mddev->dev_sectors; |