btrfs: make btrfs_file_extent_inline_item_len take a slot
authorJosef Bacik <josef@toxicpanda.com>
Thu, 21 Oct 2021 18:58:33 +0000 (14:58 -0400)
committerDavid Sterba <dsterba@suse.com>
Mon, 3 Jan 2022 14:09:43 +0000 (15:09 +0100)
Instead of getting the btrfs_item for this, simply pass in the slot of
the item and then use the btrfs_item_size_nr() helper inside of
btrfs_file_extent_inline_item_len().

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h
fs/btrfs/inode.c

index cb0871f..e0cb78f 100644 (file)
@@ -2534,9 +2534,9 @@ BTRFS_SETGET_FUNCS(file_extent_other_encoding, struct btrfs_file_extent_item,
  */
 static inline u32 btrfs_file_extent_inline_item_len(
                                                const struct extent_buffer *eb,
-                                               struct btrfs_item *e)
+                                               int nr)
 {
-       return btrfs_item_size(eb, e) - BTRFS_FILE_EXTENT_INLINE_DATA_START;
+       return btrfs_item_size_nr(eb, nr) - BTRFS_FILE_EXTENT_INLINE_DATA_START;
 }
 
 /* btrfs_qgroup_status_item */
index 5498536..e87c6cc 100644 (file)
@@ -6996,8 +6996,7 @@ static noinline int uncompress_inline(struct btrfs_path *path,
        WARN_ON(pg_offset != 0);
        compress_type = btrfs_file_extent_compression(leaf, item);
        max_size = btrfs_file_extent_ram_bytes(leaf, item);
-       inline_size = btrfs_file_extent_inline_item_len(leaf,
-                                       btrfs_item_nr(path->slots[0]));
+       inline_size = btrfs_file_extent_inline_item_len(leaf, path->slots[0]);
        tmp = kmalloc(inline_size, GFP_NOFS);
        if (!tmp)
                return -ENOMEM;