]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: use btrfs_inode in extent_writepage()
authorDavid Sterba <dsterba@suse.com>
Thu, 9 Jan 2025 10:24:17 +0000 (11:24 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Feb 2025 12:30:14 +0000 (04:30 -0800)
[ Upstream commit 011a9a1f244656cc3cbde47edba2b250f794d440 ]

As extent_writepage() is internal helper we should use our inode type,
so change it from struct inode.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Stable-dep-of: 8bf334beb349 ("btrfs: fix double accounting race when extent_writepage_io() failed")
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/btrfs/extent_io.c

index 5a1bde8cc8b6458925d864f18761ef63334c7288..e8f882f9490511965e973e18e0e3d7e2f7a31333 100644 (file)
@@ -1467,15 +1467,15 @@ out:
  */
 static int extent_writepage(struct folio *folio, struct btrfs_bio_ctrl *bio_ctrl)
 {
-       struct inode *inode = folio->mapping->host;
-       struct btrfs_fs_info *fs_info = inode_to_fs_info(inode);
+       struct btrfs_inode *inode = BTRFS_I(folio->mapping->host);
+       struct btrfs_fs_info *fs_info = inode->root->fs_info;
        const u64 page_start = folio_pos(folio);
        int ret;
        size_t pg_offset;
-       loff_t i_size = i_size_read(inode);
+       loff_t i_size = i_size_read(&inode->vfs_inode);
        unsigned long end_index = i_size >> PAGE_SHIFT;
 
-       trace_extent_writepage(folio, inode, bio_ctrl->wbc);
+       trace_extent_writepage(folio, &inode->vfs_inode, bio_ctrl->wbc);
 
        WARN_ON(!folio_test_locked(folio));
 
@@ -1499,13 +1499,13 @@ static int extent_writepage(struct folio *folio, struct btrfs_bio_ctrl *bio_ctrl
        if (ret < 0)
                goto done;
 
-       ret = writepage_delalloc(BTRFS_I(inode), folio, bio_ctrl);
+       ret = writepage_delalloc(inode, folio, bio_ctrl);
        if (ret == 1)
                return 0;
        if (ret)
                goto done;
 
-       ret = extent_writepage_io(BTRFS_I(inode), folio, folio_pos(folio),
+       ret = extent_writepage_io(inode, folio, folio_pos(folio),
                                  PAGE_SIZE, bio_ctrl, i_size);
        if (ret == 1)
                return 0;
@@ -1514,7 +1514,7 @@ static int extent_writepage(struct folio *folio, struct btrfs_bio_ctrl *bio_ctrl
 
 done:
        if (ret) {
-               btrfs_mark_ordered_io_finished(BTRFS_I(inode), folio,
+               btrfs_mark_ordered_io_finished(inode, folio,
                                               page_start, PAGE_SIZE, !ret);
                mapping_set_error(folio->mapping, ret);
        }