|
@@ -10279,8 +10279,10 @@ void btrfs_delete_unused_bgs(struct btrfs_fs_info *fs_info)
|
|
|
block_group = list_first_entry(&fs_info->unused_bgs,
|
|
|
struct btrfs_block_group_cache,
|
|
|
bg_list);
|
|
|
- space_info = block_group->space_info;
|
|
|
list_del_init(&block_group->bg_list);
|
|
|
+
|
|
|
+ space_info = block_group->space_info;
|
|
|
+
|
|
|
if (ret || btrfs_mixed_space_info(space_info)) {
|
|
|
btrfs_put_block_group(block_group);
|
|
|
continue;
|
|
@@ -10294,7 +10296,8 @@ void btrfs_delete_unused_bgs(struct btrfs_fs_info *fs_info)
|
|
|
spin_lock(&block_group->lock);
|
|
|
if (block_group->reserved ||
|
|
|
btrfs_block_group_used(&block_group->item) ||
|
|
|
- block_group->ro) {
|
|
|
+ block_group->ro ||
|
|
|
+ list_is_singular(&block_group->list)) {
|
|
|
/*
|
|
|
* We want to bail if we made new allocations or have
|
|
|
* outstanding allocations in this block group. We do
|