|
@@ -1139,6 +1139,7 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
|
|
|
mutex_lock_nested(&bdev->bd_mutex, for_part);
|
|
|
if (!bdev->bd_openers) {
|
|
|
bdev->bd_disk = disk;
|
|
|
+ bdev->bd_queue = disk->queue;
|
|
|
bdev->bd_contains = bdev;
|
|
|
if (!partno) {
|
|
|
struct backing_dev_info *bdi;
|
|
@@ -1159,6 +1160,7 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
|
|
|
disk_put_part(bdev->bd_part);
|
|
|
bdev->bd_part = NULL;
|
|
|
bdev->bd_disk = NULL;
|
|
|
+ bdev->bd_queue = NULL;
|
|
|
mutex_unlock(&bdev->bd_mutex);
|
|
|
disk_unblock_events(disk);
|
|
|
put_disk(disk);
|
|
@@ -1232,6 +1234,7 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
|
|
|
disk_put_part(bdev->bd_part);
|
|
|
bdev->bd_disk = NULL;
|
|
|
bdev->bd_part = NULL;
|
|
|
+ bdev->bd_queue = NULL;
|
|
|
bdev_inode_switch_bdi(bdev->bd_inode, &default_backing_dev_info);
|
|
|
if (bdev != bdev->bd_contains)
|
|
|
__blkdev_put(bdev->bd_contains, mode, 1);
|