summaryrefslogtreecommitdiff
path: root/fs/block_dev.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-12-14 03:23:01 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-12-14 03:23:01 (GMT)
commit93c222c0e126c1c24ac454acf013f2c85e57bd8b (patch)
tree920c429de92857aaf74e64a0f4f9fbaec7032fcf /fs/block_dev.c
parentf89c2b39ce676cb08b6ed8848cde76dcb21cc672 (diff)
parent9f9499ae8e6415cefc4fe0a96ad0e27864353c89 (diff)
downloadlinux-93c222c0e126c1c24ac454acf013f2c85e57bd8b.tar.xz
Merge 4.4-rc5 into staging-next
We want those fixes in here for testing. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/block_dev.c')
-rw-r--r--fs/block_dev.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c
index c25639e..44d4a1e 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -1523,11 +1523,14 @@ static void __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part)
WARN_ON_ONCE(bdev->bd_holders);
sync_blockdev(bdev);
kill_bdev(bdev);
+
+ bdev_write_inode(bdev);
/*
- * ->release can cause the queue to disappear, so flush all
- * dirty data before.
+ * Detaching bdev inode from its wb in __destroy_inode()
+ * is too late: the queue which embeds its bdi (along with
+ * root wb) can be gone as soon as we put_disk() below.
*/
- bdev_write_inode(bdev);
+ inode_detach_wb(bdev->bd_inode);
}
if (bdev->bd_contains == bdev) {
if (disk->fops->release)