]> www.infradead.org Git - users/hch/misc.git/commitdiff
btrfs: print-tree: print information about dir log items
authorFilipe Manana <fdmanana@suse.com>
Fri, 12 Sep 2025 16:43:46 +0000 (17:43 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 23 Sep 2025 06:49:22 +0000 (08:49 +0200)
We currently don't print information about dir log items (other than the
key, item offset and item size), which is useful to look at when debugging
problems with a log tree. So print their specific information (currently
they only have an end index number) in a format similar to btrfs-progs.

Reviewed-by: Qu Wenruo <wqu@suse.com>
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>
fs/btrfs/print-tree.c

index 0a2a6e82a3bfc71ff8c473258ce816cb6d49781d..a66aced1d29c6f2365c4a21031487a05dce6b181 100644 (file)
@@ -317,6 +317,14 @@ static void print_inode_extref_item(const struct extent_buffer *eb, int i)
        }
 }
 
+static void print_dir_log_index_item(const struct extent_buffer *eb, int i)
+{
+       struct btrfs_dir_log_item *dlog;
+
+       dlog = btrfs_item_ptr(eb, i, struct btrfs_dir_log_item);
+       pr_info("\t\tdir log end %llu\n", btrfs_dir_log_end(eb, dlog));
+}
+
 void btrfs_print_leaf(const struct extent_buffer *l)
 {
        struct btrfs_fs_info *fs_info;
@@ -362,6 +370,9 @@ void btrfs_print_leaf(const struct extent_buffer *l)
                case BTRFS_XATTR_ITEM_KEY:
                        print_dir_item(l, i);
                        break;
+               case BTRFS_DIR_LOG_INDEX_KEY:
+                       print_dir_log_index_item(l, i);
+                       break;
                case BTRFS_ROOT_ITEM_KEY:
                        ri = btrfs_item_ptr(l, i, struct btrfs_root_item);
                        pr_info("\t\troot data bytenr %llu refs %u\n",