aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/print-tree.c
diff options
context:
space:
mode:
authorJeff Mahoney <[email protected]>2016-09-20 12:50:21 +0000
committerDavid Sterba <[email protected]>2016-09-26 16:08:44 +0000
commitcea67ab92d3d4da9f2b4141d87cb8664757daca0 (patch)
tree75f6575c0d9aecef3d981ff0083222b2c4932be9 /fs/btrfs/print-tree.c
parentBtrfs: kill BUG_ON in run_delayed_tree_ref (diff)
downloadkernel-cea67ab92d3d4da9f2b4141d87cb8664757daca0.tar.gz
kernel-cea67ab92d3d4da9f2b4141d87cb8664757daca0.zip
btrfs: clean the old superblocks before freeing the device
btrfs_rm_device frees the block device but then re-opens it using the saved device name. A race exists between the close and the re-open that allows the block size to be changed. The result is getting stuck forever in the reclaim loop in __getblk_slow. This patch moves the superblock cleanup before closing the block device, which is also consistent with other callers. We also don't need a private copy of dev_name as the whole routine operates under the uuid_mutex. Signed-off-by: Jeff Mahoney <[email protected]> Reviewed-by: David Sterba <[email protected]> Signed-off-by: David Sterba <[email protected]>
Diffstat (limited to 'fs/btrfs/print-tree.c')
0 files changed, 0 insertions, 0 deletions