* [PATCH 0/2] btrfs-progs: fix the overly strict chunk type check on dump-tree
@ 2026-05-29 9:36 Qu Wenruo
2026-05-29 9:36 ` [PATCH 1/2] btrfs-progs: dump-tree: fix the chunk type check for system chunks Qu Wenruo
2026-05-29 9:36 ` [PATCH 2/2] btrfs-progs: misc-tests: add a regression test case for dump tree Qu Wenruo
0 siblings, 2 replies; 3+ messages in thread
From: Qu Wenruo @ 2026-05-29 9:36 UTC (permalink / raw)
To: linux-btrfs
Commit 408e45feb325 ("btrfs-progs: dump-tree: add extra chunk type
checks") introduced a chunk type check before dumping the tree.
However it's too strict as I'm a total idiot, and forgot to we still
need to dump chunk tree blocks.
Fix it and add a regression test.
Qu Wenruo (2):
btrfs-progs: dump-tree: fix the chunk type check for system chunks
btrfs-progs: misc-tests: add a regression test case for dump tree
cmds/inspect-dump-tree.c | 5 ++--
.../072-dump-tree-chunk-bytenr/test.sh | 25 +++++++++++++++++++
2 files changed, 28 insertions(+), 2 deletions(-)
create mode 100755 tests/misc-tests/072-dump-tree-chunk-bytenr/test.sh
--
2.54.0
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH 1/2] btrfs-progs: dump-tree: fix the chunk type check for system chunks 2026-05-29 9:36 [PATCH 0/2] btrfs-progs: fix the overly strict chunk type check on dump-tree Qu Wenruo @ 2026-05-29 9:36 ` Qu Wenruo 2026-05-29 9:36 ` [PATCH 2/2] btrfs-progs: misc-tests: add a regression test case for dump tree Qu Wenruo 1 sibling, 0 replies; 3+ messages in thread From: Qu Wenruo @ 2026-05-29 9:36 UTC (permalink / raw) To: linux-btrfs [BUG] Commit 408e45feb325 ("btrfs-progs: dump-tree: add extra chunk type checks") introduced one extra check on when using "btrfs ins dump-tree -b <bytenr>" option, to prevent end users from passing logical address belonging to data chunks. However that check forget that we also have metadata in system chunks, thus will cause the following false alerts: # mkfs.btrfs -f $dev # btrfs ins dump-tree -t chunk $dev | grep "owner CHUNK_TREE" leaf 22036480 items 4 free space 15781 generation 8 owner CHUNK_TREE ^^^ This means we can still print the chunk tree # btrfs ins dump-tree -b 22036480 $dev btrfs-progs v6.19.1 ERROR: logical 22036480 is not in a metadata chunk, found chunk 22020096 len 8388608 flags 0x22 [CAUSE] I'm an idiot and forgot to check system chunks. [FIX] Add system chunk type into the check. Fixes: 408e45feb325 ("btrfs-progs: dump-tree: add extra chunk type checks") Signed-off-by: Qu Wenruo <wqu@suse.com> --- cmds/inspect-dump-tree.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cmds/inspect-dump-tree.c b/cmds/inspect-dump-tree.c index 8f384d3561c9..0d58e398f636 100644 --- a/cmds/inspect-dump-tree.c +++ b/cmds/inspect-dump-tree.c @@ -206,8 +206,9 @@ static int check_metadata_logical(struct btrfs_fs_info *fs_info, u64 logical) return -ENOENT; } map = container_of(ce, struct map_lookup, ce); - if (!(map->type & BTRFS_BLOCK_GROUP_METADATA)) { - error("logical %llu is not in a metadata chunk, found chunk %llu len %llu flags 0x%llx", + if (!(map->type & (BTRFS_BLOCK_GROUP_METADATA | + BTRFS_BLOCK_GROUP_SYSTEM))) { + error("logical %llu is not in a metadata/system chunk, found chunk %llu len %llu flags 0x%llx", logical, ce->start, ce->size, map->type); return -EINVAL; } -- 2.54.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] btrfs-progs: misc-tests: add a regression test case for dump tree 2026-05-29 9:36 [PATCH 0/2] btrfs-progs: fix the overly strict chunk type check on dump-tree Qu Wenruo 2026-05-29 9:36 ` [PATCH 1/2] btrfs-progs: dump-tree: fix the chunk type check for system chunks Qu Wenruo @ 2026-05-29 9:36 ` Qu Wenruo 1 sibling, 0 replies; 3+ messages in thread From: Qu Wenruo @ 2026-05-29 9:36 UTC (permalink / raw) To: linux-btrfs The new test case will: - Create an empty btrfs - Grab the chunk tree root bytenr - Pass that bytenr into "btrfs ins dump-tree -b <bytenr>" That must success. This is for the regression introduced by commit 408e45feb325 ("btrfs-progs: dump-tree: add extra chunk type checks"). Signed-off-by: Qu Wenruo <wqu@suse.com> --- .../072-dump-tree-chunk-bytenr/test.sh | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 tests/misc-tests/072-dump-tree-chunk-bytenr/test.sh diff --git a/tests/misc-tests/072-dump-tree-chunk-bytenr/test.sh b/tests/misc-tests/072-dump-tree-chunk-bytenr/test.sh new file mode 100755 index 000000000000..ef4fc4659e4f --- /dev/null +++ b/tests/misc-tests/072-dump-tree-chunk-bytenr/test.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# Test "btrfs ins dump-tree -b <bytenr>" when the bytenr belongs to a chunk +# tree block. +# +# This is a regression test for commit 408e45feb325 ("btrfs-progs: +# dump-tree: add extra chunk type checks"), which is too strict and +# rejects chunk tree blocks. + +source "$TEST_TOP/common" || exit +source "$TEST_TOP/common.convert" || exit + +check_prereq mkfs.btrfs +check_prereq btrfs + +setup_root_helper +prepare_test_dev + +run_check_mkfs_test_dev +chunk_root=$(run_check_stdout "$TOP/btrfs" inspect-internal dump-tree -t chunk "$TEST_DEV" |\ + grep "owner CHUNK_TREE" | cut -f 2 -d\ ) +if [ -z "$chunk_root" ]; then + _fail "unable to get the chunk root bytenr" +fi + +run_check "$TOP/btrfs" inspect-internal dump-tree -b "$chunk_root" "$TEST_DEV" -- 2.54.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-05-29 9:36 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-29 9:36 [PATCH 0/2] btrfs-progs: fix the overly strict chunk type check on dump-tree Qu Wenruo 2026-05-29 9:36 ` [PATCH 1/2] btrfs-progs: dump-tree: fix the chunk type check for system chunks Qu Wenruo 2026-05-29 9:36 ` [PATCH 2/2] btrfs-progs: misc-tests: add a regression test case for dump tree Qu Wenruo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox