summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilipe Manana <fdmanana@suse.com>2026-01-23 13:05:12 +0300
committerDavid Sterba <dsterba@suse.com>2026-02-03 09:56:24 +0300
commit719dc4b75561f7f11ff42ccf8401fcac72d3804f (patch)
treee8f3fbb409fffbee28c44395a22f400bfc8e298c
parent6f926597f9837577f5ada47eaa764fea4a2ca9a3 (diff)
downloadlinux-719dc4b75561f7f11ff42ccf8401fcac72d3804f.tar.xz
btrfs: do not BUG_ON() in btrfs_remove_block_group()
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>
-rw-r--r--fs/btrfs/block-group.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c
index 7b723571501e..3186ed4fd26d 100644
--- a/fs/btrfs/block-group.c
+++ b/fs/btrfs/block-group.c
@@ -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);
/*