diff options
Diffstat (limited to 'fs/btrfs/extent-tree.c')
-rw-r--r-- | fs/btrfs/extent-tree.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 38b76cc02f48..1c2bd1723e40 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -9889,6 +9889,8 @@ void btrfs_delete_unused_bgs(struct btrfs_fs_info *fs_info) | |||
9889 | } | 9889 | } |
9890 | spin_unlock(&fs_info->unused_bgs_lock); | 9890 | spin_unlock(&fs_info->unused_bgs_lock); |
9891 | 9891 | ||
9892 | mutex_lock(&root->fs_info->delete_unused_bgs_mutex); | ||
9893 | |||
9892 | /* Don't want to race with allocators so take the groups_sem */ | 9894 | /* Don't want to race with allocators so take the groups_sem */ |
9893 | down_write(&space_info->groups_sem); | 9895 | down_write(&space_info->groups_sem); |
9894 | spin_lock(&block_group->lock); | 9896 | spin_lock(&block_group->lock); |
@@ -9983,6 +9985,7 @@ void btrfs_delete_unused_bgs(struct btrfs_fs_info *fs_info) | |||
9983 | end_trans: | 9985 | end_trans: |
9984 | btrfs_end_transaction(trans, root); | 9986 | btrfs_end_transaction(trans, root); |
9985 | next: | 9987 | next: |
9988 | mutex_unlock(&root->fs_info->delete_unused_bgs_mutex); | ||
9986 | btrfs_put_block_group(block_group); | 9989 | btrfs_put_block_group(block_group); |
9987 | spin_lock(&fs_info->unused_bgs_lock); | 9990 | spin_lock(&fs_info->unused_bgs_lock); |
9988 | } | 9991 | } |