diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c index 226e6434a58a94f3c2470756715282a0e7b12445..2de1684a8df3b64b5dbfdf35c77af3dc2fd1f101 100644 --- a/fs/btrfs/block-group.c +++ b/fs/btrfs/block-group.c @@ -2777,8 +2777,10 @@ void btrfs_create_pending_block_groups(struct btrfs_trans_handle *trans) /* Already aborted the transaction if it failed. */ next: btrfs_delayed_refs_rsv_release(fs_info, 1); + spin_lock(&fs_info->unused_bgs_lock); list_del_init(&block_group->bg_list); clear_bit(BLOCK_GROUP_FLAG_NEW, &block_group->runtime_flags); + spin_unlock(&fs_info->unused_bgs_lock); } btrfs_trans_release_chunk_metadata(trans); }