]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: print-tree: move code for processing file extent item into helper
authorFilipe Manana <fdmanana@suse.com>
Mon, 15 Sep 2025 14:23:43 +0000 (15:23 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 23 Sep 2025 06:49:23 +0000 (08:49 +0200)
The code for processing file extent items is quite large and it's better
to have it in a dedicated helper rather than in a huge switch statement,
just like we do in 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 417e3860cd251ee9224f88be4f0255d9350dab68..02ad18abefb9f7b2e7fea3952db0375328b8f85e 100644 (file)
@@ -338,6 +338,34 @@ static void print_extent_csum(const struct extent_buffer *eb, int i)
                key.offset, key.offset + csum_bytes, csum_bytes);
 }
 
+static void print_file_extent_item(const struct extent_buffer *eb, int i)
+{
+       struct btrfs_file_extent_item *fi;
+
+       fi = btrfs_item_ptr(eb, i, struct btrfs_file_extent_item);
+       pr_info("\t\tgeneration %llu type %hhu\n",
+               btrfs_file_extent_generation(eb, fi),
+               btrfs_file_extent_type(eb, fi));
+
+       if (btrfs_file_extent_type(eb, fi) == BTRFS_FILE_EXTENT_INLINE) {
+               pr_info("\t\tinline extent data size %u ram_bytes %llu compression %hhu\n",
+                       btrfs_file_extent_inline_item_len(eb, i),
+                       btrfs_file_extent_ram_bytes(eb, fi),
+                       btrfs_file_extent_compression(eb, fi));
+               return;
+       }
+
+       pr_info("\t\textent data disk bytenr %llu nr %llu\n",
+               btrfs_file_extent_disk_bytenr(eb, fi),
+               btrfs_file_extent_disk_num_bytes(eb, fi));
+       pr_info("\t\textent data offset %llu nr %llu ram %llu\n",
+               btrfs_file_extent_offset(eb, fi),
+               btrfs_file_extent_num_bytes(eb, fi),
+               btrfs_file_extent_ram_bytes(eb, fi));
+       pr_info("\t\textent compression %hhu\n",
+               btrfs_file_extent_compression(eb, fi));
+}
+
 void btrfs_print_leaf(const struct extent_buffer *l)
 {
        struct btrfs_fs_info *fs_info;
@@ -345,7 +373,6 @@ void btrfs_print_leaf(const struct extent_buffer *l)
        u32 type, nr;
        struct btrfs_root_item *ri;
        struct btrfs_block_group_item *bi;
-       struct btrfs_file_extent_item *fi;
        struct btrfs_extent_data_ref *dref;
        struct btrfs_shared_data_ref *sref;
        struct btrfs_dev_extent *dev_extent;
@@ -417,28 +444,7 @@ void btrfs_print_leaf(const struct extent_buffer *l)
                               btrfs_shared_data_ref_count(l, sref));
                        break;
                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 %u ram_bytes %llu compression %hhu\n",
-                                       btrfs_file_extent_inline_item_len(l, i),
-                                       btrfs_file_extent_ram_bytes(l, fi),
-                                       btrfs_file_extent_compression(l, fi));
-                               break;
-                       }
-                       pr_info("\t\textent data disk bytenr %llu nr %llu\n",
-                              btrfs_file_extent_disk_bytenr(l, fi),
-                              btrfs_file_extent_disk_num_bytes(l, fi));
-                       pr_info("\t\textent data offset %llu nr %llu ram %llu\n",
-                              btrfs_file_extent_offset(l, fi),
-                              btrfs_file_extent_num_bytes(l, fi),
-                              btrfs_file_extent_ram_bytes(l, fi));
-                       pr_info("\t\textent compression %hhu\n",
-                               btrfs_file_extent_compression(l, fi));
+                       print_file_extent_item(l, i);
                        break;
                case BTRFS_BLOCK_GROUP_ITEM_KEY:
                        bi = btrfs_item_ptr(l, i,