]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: print-tree: add generation and type dump for EXTENT_DATA_KEY
authorQu Wenruo <wqu@suse.com>
Mon, 24 Jun 2024 04:58:54 +0000 (14:28 +0930)
committerDavid Sterba <dsterba@suse.com>
Thu, 11 Jul 2024 13:33:28 +0000 (15:33 +0200)
When debugging the recent ram_bytes mismatch bug, I can hit it with
enhanced tree-checker for file extent items at write time.

But the bug is not that easy to trigger (mostly triggered with
btrfs/06*, which uses 20 threads fsstress), and when I hit it, the only
info is the kernel leaf dump, but it doesn't include things like the
file extent type (REGULAR or PREALLOC).

Add the dump for generation and type (although only numeric output) to
make debugging a little easier.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/print-tree.c

index ffe89db24bece36150e877954df47eb109535d8e..453cd835876053817b21ccc22f92db0aeb2bd037 100644 (file)
@@ -310,6 +310,9 @@ void btrfs_print_leaf(const struct extent_buffer *l)
                case BTRFS_EXTENT_DATA_KEY:
                        fi = btrfs_item_ptr(l, i,
                                            struct btrfs_file_extent_item);
+                       pr_info("\t\tgeneration %llu type %hhu\n",
+                               btrfs_file_extent_generation(l, fi),
+                               btrfs_file_extent_type(l, fi));
                        if (btrfs_file_extent_type(l, fi) ==
                            BTRFS_FILE_EXTENT_INLINE) {
                                pr_info("\t\tinline extent data size %llu\n",