btrfs: convert btrfs_get_extent() to take a folio
authorJosef Bacik <josef@toxicpanda.com>
Wed, 24 Jul 2024 23:26:58 +0000 (19:26 -0400)
committerDavid Sterba <dsterba@suse.com>
Tue, 10 Sep 2024 14:51:16 +0000 (16:51 +0200)
We only pass this into read_inline_extent, change it to take a folio and
update the callers.

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/btrfs_inode.h
fs/btrfs/extent_io.c
fs/btrfs/inode.c

index fc60c0c..2d7f8da 100644 (file)
@@ -578,7 +578,7 @@ struct inode *btrfs_iget_path(u64 ino, struct btrfs_root *root,
                              struct btrfs_path *path);
 struct inode *btrfs_iget(u64 ino, struct btrfs_root *root);
 struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
-                                   struct page *page, u64 start, u64 len);
+                                   struct folio *folio, u64 start, u64 len);
 int btrfs_update_inode(struct btrfs_trans_handle *trans,
                       struct btrfs_inode *inode);
 int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
index 6ba8867..f4eb442 100644 (file)
@@ -987,7 +987,7 @@ static struct extent_map *__get_extent_map(struct inode *inode, struct page *pag
                *em_cached = NULL;
        }
 
-       em = btrfs_get_extent(BTRFS_I(inode), page, start, len);
+       em = btrfs_get_extent(BTRFS_I(inode), page_folio(page), start, len);
        if (!IS_ERR(em)) {
                BUG_ON(*em_cached);
                refcount_inc(&em->refs);
index eb3c8cc..05e74ef 100644 (file)
@@ -6792,7 +6792,7 @@ static int read_inline_extent(struct btrfs_inode *inode, struct btrfs_path *path
  * Return: ERR_PTR on error, non-NULL extent_map on success.
  */
 struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
-                                   struct page *page, u64 start, u64 len)
+                                   struct folio *folio, u64 start, u64 len)
 {
        struct btrfs_fs_info *fs_info = inode->root->fs_info;
        int ret = 0;
@@ -6815,7 +6815,7 @@ struct extent_map *btrfs_get_extent(struct btrfs_inode *inode,
        if (em) {
                if (em->start > start || em->start + em->len <= start)
                        free_extent_map(em);
-               else if (em->disk_bytenr == EXTENT_MAP_INLINE && page)
+               else if (em->disk_bytenr == EXTENT_MAP_INLINE && folio)
                        free_extent_map(em);
                else
                        goto out;
@@ -6945,7 +6945,7 @@ next:
                ASSERT(em->disk_bytenr == EXTENT_MAP_INLINE);
                ASSERT(em->len == fs_info->sectorsize);
 
-               ret = read_inline_extent(inode, path, page_folio(page));
+               ret = read_inline_extent(inode, path, folio);
                if (ret < 0)
                        goto out;
                goto insert;