* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.