When running test fuzz/003, we could hit the following BUG_ON: ------ ====== RUN MAYFAIL /home/adam/btrfs/btrfs-progs/btrfs check --init-csum-tree /home/adam/btrfs/btrfs-progs/tests//fuzz-tests/images/bko-155621-bad-block-group-offset.raw.restored Unable to find block group for 0 Unable to find block group for 0 Unable to find block group for 0 extent-tree.c:2657: alloc_tree_block: BUG_ON `ret` triggered, value -28 failed (ignored, ret=134): /home/adam/btrfs/btrfs-progs/btrfs check --init-csum-tree /home/adam/btrfs/btrfs-progs/tests//fuzz-tests/images/bko-155621-bad-block-group-offset.raw.restored mayfail: returned code 134 (SIGABRT), not ignored test failed for case 003-multi-check-unmounted ------
Just remove that BUG_ON() and allow us to exit gracefully. Signed-off-by: Qu Wenruo <w...@suse.com> --- extent-tree.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/extent-tree.c b/extent-tree.c index b9d51b388c9a..a1f711ece7a8 100644 --- a/extent-tree.c +++ b/extent-tree.c @@ -2654,7 +2654,10 @@ static int alloc_tree_block(struct btrfs_trans_handle *trans, ret = btrfs_reserve_extent(trans, root, num_bytes, empty_size, hint_byte, search_end, ins, 0); - BUG_ON(ret); + if (ret < 0) { + btrfs_free_delayed_extent_op(extent_op); + return ret; + } if (key) memcpy(&extent_op->key, key, sizeof(extent_op->key)); -- 2.18.0 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html