diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 26a18779e84bb3df55e62f79630218010202326e..3cf17257f89dca5f1e8b5d0041e170a6da22aa37 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -1823,13 +1823,14 @@ struct btrfs_root *open_ctree(struct super_block *sb, fail_iput: invalidate_inode_pages2(fs_info->btree_inode->i_mapping); iput(fs_info->btree_inode); -fail: + btrfs_close_devices(fs_info->fs_devices); btrfs_mapping_tree_free(&fs_info->mapping_tree); + bdi_destroy(&fs_info->bdi); +fail: kfree(extent_root); kfree(tree_root); - bdi_destroy(&fs_info->bdi); kfree(fs_info); kfree(chunk_root); kfree(dev_root);