aboutsummaryrefslogtreecommitdiffstats
path: root/fs/block_dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/block_dev.c')
-rw-r--r--fs/block_dev.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c
index d7c2e0fddc6f..1f2b19978333 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -1120,6 +1120,15 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
1120 goto restart; 1120 goto restart;
1121 } 1121 }
1122 } 1122 }
1123
1124 if (!ret && !bdev->bd_openers) {
1125 bd_set_size(bdev,(loff_t)get_capacity(disk)<<9);
1126 bdi = blk_get_backing_dev_info(bdev);
1127 if (bdi == NULL)
1128 bdi = &default_backing_dev_info;
1129 bdev_inode_switch_bdi(bdev->bd_inode, bdi);
1130 }
1131
1123 /* 1132 /*
1124 * If the device is invalidated, rescan partition 1133 * If the device is invalidated, rescan partition
1125 * if open succeeded or failed with -ENOMEDIUM. 1134 * if open succeeded or failed with -ENOMEDIUM.
@@ -1130,14 +1139,6 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
1130 rescan_partitions(disk, bdev); 1139 rescan_partitions(disk, bdev);
1131 if (ret) 1140 if (ret)
1132 goto out_clear; 1141 goto out_clear;
1133
1134 if (!bdev->bd_openers) {
1135 bd_set_size(bdev,(loff_t)get_capacity(disk)<<9);
1136 bdi = blk_get_backing_dev_info(bdev);
1137 if (bdi == NULL)
1138 bdi = &default_backing_dev_info;
1139 bdev_inode_switch_bdi(bdev->bd_inode, bdi);
1140 }
1141 } else { 1142 } else {
1142 struct block_device *whole; 1143 struct block_device *whole;
1143 whole = bdget_disk(disk, 0); 1144 whole = bdget_disk(disk, 0);