|
@@ -3741,17 +3741,8 @@ array_size_store(mddev_t *mddev, const char *buf, size_t len)
|
|
|
|
|
|
mddev->array_sectors = sectors;
|
|
|
set_capacity(mddev->gendisk, mddev->array_sectors);
|
|
|
- if (mddev->pers) {
|
|
|
- struct block_device *bdev = bdget_disk(mddev->gendisk, 0);
|
|
|
-
|
|
|
- if (bdev) {
|
|
|
- mutex_lock(&bdev->bd_inode->i_mutex);
|
|
|
- i_size_write(bdev->bd_inode,
|
|
|
- (loff_t)mddev->array_sectors << 9);
|
|
|
- mutex_unlock(&bdev->bd_inode->i_mutex);
|
|
|
- bdput(bdev);
|
|
|
- }
|
|
|
- }
|
|
|
+ if (mddev->pers)
|
|
|
+ revalidate_disk(mddev->gendisk);
|
|
|
|
|
|
return len;
|
|
|
}
|
|
@@ -4241,6 +4232,7 @@ static int do_md_run(mddev_t * mddev)
|
|
|
md_wakeup_thread(mddev->thread);
|
|
|
md_wakeup_thread(mddev->sync_thread); /* possibly kick off a reshape */
|
|
|
|
|
|
+ revalidate_disk(mddev->gendisk);
|
|
|
mddev->changed = 1;
|
|
|
md_new_event(mddev);
|
|
|
sysfs_notify_dirent(mddev->sysfs_state);
|
|
@@ -5139,18 +5131,8 @@ static int update_size(mddev_t *mddev, sector_t num_sectors)
|
|
|
return -ENOSPC;
|
|
|
}
|
|
|
rv = mddev->pers->resize(mddev, num_sectors);
|
|
|
- if (!rv) {
|
|
|
- struct block_device *bdev;
|
|
|
-
|
|
|
- bdev = bdget_disk(mddev->gendisk, 0);
|
|
|
- if (bdev) {
|
|
|
- mutex_lock(&bdev->bd_inode->i_mutex);
|
|
|
- i_size_write(bdev->bd_inode,
|
|
|
- (loff_t)mddev->array_sectors << 9);
|
|
|
- mutex_unlock(&bdev->bd_inode->i_mutex);
|
|
|
- bdput(bdev);
|
|
|
- }
|
|
|
- }
|
|
|
+ if (!rv)
|
|
|
+ revalidate_disk(mddev->gendisk);
|
|
|
return rv;
|
|
|
}
|
|
|
|