From: Kairui Song <kasong@tencent.com>
folio_index is only needed for mixed usage of page cache and swap
cache, for pure page cache usage, the caller can just use
folio->index instead.
It can't be a swap cache folio here. Swap mapping may only call into fs
through `swap_rw` and that is not supported for f2fs. So just drop it
and use folio->index instead.
Signed-off-by: Kairui Song <kasong@tencent.com>
Cc: Jaegeuk Kim <jaegeuk@kernel.org> (maintainer:F2FS FILE SYSTEM)
Cc: Chao Yu <chao@kernel.org> (maintainer:F2FS FILE SYSTEM)
Cc: linux-f2fs-devel@lists.sourceforge.net (open list:F2FS FILE SYSTEM)
Signed-off-by: Kairui Song <kasong@tencent.com>
---
fs/f2fs/data.c | 4 ++--
fs/f2fs/inline.c | 4 ++--
fs/f2fs/super.c | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 54f89f0ee69b..5745b97ca1f0 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -2077,7 +2077,7 @@ static int f2fs_read_single_page(struct inode *inode, struct folio *folio,
sector_t last_block;
sector_t last_block_in_file;
sector_t block_nr;
- pgoff_t index = folio_index(folio);
+ pgoff_t index = folio->index;
int ret = 0;
block_in_file = (sector_t)index;
@@ -2392,7 +2392,7 @@ static int f2fs_mpage_readpages(struct inode *inode,
}
#ifdef CONFIG_F2FS_FS_COMPRESSION
- index = folio_index(folio);
+ index = folio->index;
if (!f2fs_compressed_file(inode))
goto read_single_page;
diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c
index ad92e9008781..aaaec3206538 100644
--- a/fs/f2fs/inline.c
+++ b/fs/f2fs/inline.c
@@ -86,7 +86,7 @@ void f2fs_do_read_inline_data(struct folio *folio, struct page *ipage)
if (folio_test_uptodate(folio))
return;
- f2fs_bug_on(F2FS_I_SB(inode), folio_index(folio));
+ f2fs_bug_on(F2FS_I_SB(inode), folio->index);
folio_zero_segment(folio, MAX_INLINE_DATA(inode), folio_size(folio));
@@ -130,7 +130,7 @@ int f2fs_read_inline_data(struct inode *inode, struct folio *folio)
return -EAGAIN;
}
- if (folio_index(folio))
+ if (folio->index)
folio_zero_segment(folio, 0, folio_size(folio));
else
f2fs_do_read_inline_data(folio, ipage);
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index f087b2b71c89..eac1dcb44637 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -3432,7 +3432,7 @@ static int __f2fs_commit_super(struct f2fs_sb_info *sbi, struct folio *folio,
bio = bio_alloc(sbi->sb->s_bdev, 1, opf, GFP_NOFS);
/* it doesn't need to set crypto context for superblock update */
- bio->bi_iter.bi_sector = SECTOR_FROM_BLOCK(folio_index(folio));
+ bio->bi_iter.bi_sector = SECTOR_FROM_BLOCK(folio->index);
if (!bio_add_folio(bio, folio, folio_size(folio), 0))
f2fs_bug_on(sbi, 1);
--
2.49.0
On Mon, Apr 28, 2025 at 02:59:05AM +0800, Kairui Song wrote: > folio_index is only needed for mixed usage of page cache and swap > cache, for pure page cache usage, the caller can just use > folio->index instead. > > It can't be a swap cache folio here. Swap mapping may only call into fs > through `swap_rw` and that is not supported for f2fs. So just drop it > and use folio->index instead. > > Signed-off-by: Kairui Song <kasong@tencent.com> > Cc: Jaegeuk Kim <jaegeuk@kernel.org> (maintainer:F2FS FILE SYSTEM) > Cc: Chao Yu <chao@kernel.org> (maintainer:F2FS FILE SYSTEM) > Cc: linux-f2fs-devel@lists.sourceforge.net (open list:F2FS FILE SYSTEM) > Signed-off-by: Kairui Song <kasong@tencent.com> Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> > @@ -130,7 +130,7 @@ int f2fs_read_inline_data(struct inode *inode, struct folio *folio) > return -EAGAIN; > } > > - if (folio_index(folio)) > + if (folio->index) > folio_zero_segment(folio, 0, folio_size(folio)); > else > f2fs_do_read_inline_data(folio, ipage); This hunk is going to conflict with a pair of patches I sent to f2fs-devel a few weeks ago. I don't think there's any escaping it, just a heads-up.
On Mon, Apr 28, 2025 at 8:41 AM Matthew Wilcox <willy@infradead.org> wrote: > > On Mon, Apr 28, 2025 at 02:59:05AM +0800, Kairui Song wrote: > > folio_index is only needed for mixed usage of page cache and swap > > cache, for pure page cache usage, the caller can just use > > folio->index instead. > > > > It can't be a swap cache folio here. Swap mapping may only call into fs > > through `swap_rw` and that is not supported for f2fs. So just drop it > > and use folio->index instead. > > > > Signed-off-by: Kairui Song <kasong@tencent.com> > > Cc: Jaegeuk Kim <jaegeuk@kernel.org> (maintainer:F2FS FILE SYSTEM) > > Cc: Chao Yu <chao@kernel.org> (maintainer:F2FS FILE SYSTEM) > > Cc: linux-f2fs-devel@lists.sourceforge.net (open list:F2FS FILE SYSTEM) > > Signed-off-by: Kairui Song <kasong@tencent.com> > > Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> > > > @@ -130,7 +130,7 @@ int f2fs_read_inline_data(struct inode *inode, struct folio *folio) > > return -EAGAIN; > > } > > > > - if (folio_index(folio)) > > + if (folio->index) > > folio_zero_segment(folio, 0, folio_size(folio)); > > else > > f2fs_do_read_inline_data(folio, ipage); > > This hunk is going to conflict with a pair of patches I sent to f2fs-devel > a few weeks ago. I don't think there's any escaping it, just a heads-up. > Thanks for the info, this patch is just converting folio_index to folio->index so conflict should be easy to resolve I think? I can do a rebase later if that series is merged first.
© 2016 - 2025 Red Hat, Inc.