diff options
Diffstat (limited to 'fs/btrfs/extent-tree.c')
-rw-r--r-- | fs/btrfs/extent-tree.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index c7adff343ba9..5faf057f6f37 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -10831,17 +10831,6 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans, | |||
10831 | remove_em = (atomic_read(&block_group->trimming) == 0); | 10831 | remove_em = (atomic_read(&block_group->trimming) == 0); |
10832 | spin_unlock(&block_group->lock); | 10832 | spin_unlock(&block_group->lock); |
10833 | 10833 | ||
10834 | if (remove_em) { | ||
10835 | struct extent_map_tree *em_tree; | ||
10836 | |||
10837 | em_tree = &fs_info->mapping_tree.map_tree; | ||
10838 | write_lock(&em_tree->lock); | ||
10839 | remove_extent_mapping(em_tree, em); | ||
10840 | write_unlock(&em_tree->lock); | ||
10841 | /* once for the tree */ | ||
10842 | free_extent_map(em); | ||
10843 | } | ||
10844 | |||
10845 | mutex_unlock(&fs_info->chunk_mutex); | 10834 | mutex_unlock(&fs_info->chunk_mutex); |
10846 | 10835 | ||
10847 | ret = remove_block_group_free_space(trans, block_group); | 10836 | ret = remove_block_group_free_space(trans, block_group); |
@@ -10858,6 +10847,19 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans, | |||
10858 | goto out; | 10847 | goto out; |
10859 | 10848 | ||
10860 | ret = btrfs_del_item(trans, root, path); | 10849 | ret = btrfs_del_item(trans, root, path); |
10850 | if (ret) | ||
10851 | goto out; | ||
10852 | |||
10853 | if (remove_em) { | ||
10854 | struct extent_map_tree *em_tree; | ||
10855 | |||
10856 | em_tree = &fs_info->mapping_tree.map_tree; | ||
10857 | write_lock(&em_tree->lock); | ||
10858 | remove_extent_mapping(em_tree, em); | ||
10859 | write_unlock(&em_tree->lock); | ||
10860 | /* once for the tree */ | ||
10861 | free_extent_map(em); | ||
10862 | } | ||
10861 | out: | 10863 | out: |
10862 | if (remove_rsv) | 10864 | if (remove_rsv) |
10863 | btrfs_delayed_refs_rsv_release(fs_info, 1); | 10865 | btrfs_delayed_refs_rsv_release(fs_info, 1); |