summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuangXiaojia <huangxiaojia2@huawei.com>2024-02-01 08:38:58 +0100
committerJaegeuk Kim <jaegeuk@kernel.org>2024-02-27 18:41:15 +0100
commit1ff61a3205185e4a7b61a9fb9ab1add1731f662b (patch)
tree6083a851482d814cbcc146b4c3087a5834fcb5fe
parentf2fs: fix to create selinux label during whiteout initialization (diff)
downloadlinux-1ff61a3205185e4a7b61a9fb9ab1add1731f662b.tar.xz
linux-1ff61a3205185e4a7b61a9fb9ab1add1731f662b.zip
f2fs: Use folio in f2fs_read_merkle_tree_page
Use folio in f2fs_read_merkle_tree_page to reduce folio & page converisons from find_get_page_flags and read_mapping_page functions. But the return value should be the exact page. Signed-off-by: HuangXiaojia <huangxiaojia2@huawei.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r--fs/f2fs/verity.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/fs/f2fs/verity.c b/fs/f2fs/verity.c
index 4fc95f353a7a..f7bb0c54502c 100644
--- a/fs/f2fs/verity.c
+++ b/fs/f2fs/verity.c
@@ -258,21 +258,23 @@ static struct page *f2fs_read_merkle_tree_page(struct inode *inode,
pgoff_t index,
unsigned long num_ra_pages)
{
- struct page *page;
+ struct folio *folio;
index += f2fs_verity_metadata_pos(inode) >> PAGE_SHIFT;
- page = find_get_page_flags(inode->i_mapping, index, FGP_ACCESSED);
- if (!page || !PageUptodate(page)) {
+ folio = __filemap_get_folio(inode->i_mapping, index, FGP_ACCESSED, 0);
+ if (IS_ERR(folio) || !folio_test_uptodate(folio)) {
DEFINE_READAHEAD(ractl, NULL, NULL, inode->i_mapping, index);
- if (page)
- put_page(page);
+ if (!IS_ERR(folio))
+ folio_put(folio);
else if (num_ra_pages > 1)
page_cache_ra_unbounded(&ractl, num_ra_pages, 0);
- page = read_mapping_page(inode->i_mapping, index, NULL);
+ folio = read_mapping_folio(inode->i_mapping, index, NULL);
+ if (IS_ERR(folio))
+ return ERR_CAST(folio);
}
- return page;
+ return folio_file_page(folio, index);
}
static int f2fs_write_merkle_tree_block(struct inode *inode, const void *buf,