]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
btrfs: do not BUG_ON() in btrfs_remove_block_group()
authorFilipe Manana <fdmanana@suse.com>
Fri, 23 Jan 2026 10:05:12 +0000 (10:05 +0000)
committerDavid Sterba <dsterba@suse.com>
Tue, 3 Feb 2026 06:56:24 +0000 (07:56 +0100)
There's no need to BUG_ON(), we can just abort the transaction and return
an error.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/block-group.c

index 7b723571501ed68486ac474ed48a504e0bd685c0..3186ed4fd26d268c2bd28c51caf4fe20752d1379 100644 (file)
@@ -1113,7 +1113,12 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans,
                return -ENOENT;
        }
 
-       BUG_ON(!block_group->ro && !(block_group->flags & BTRFS_BLOCK_GROUP_REMAPPED));
+       if (unlikely(!block_group->ro &&
+                    !(block_group->flags & BTRFS_BLOCK_GROUP_REMAPPED))) {
+               ret = -EUCLEAN;
+               btrfs_abort_transaction(trans, ret);
+               goto out;
+       }
 
        trace_btrfs_remove_block_group(block_group);
        /*