Message ID | 20240201073858.104773-1-huangxiaojia2@huawei.com (mailing list archive) |
---|---|
State | Accepted |
Commit | defcf26adff992a58f48ac9dd00538a8b61c8e78 |
Headers | show |
Series | [f2fs-dev,Patch-next] f2fs: Use folio in f2fs_read_merkle_tree_page | expand |
On 2024/2/1 15:38, Huang Xiaojia wrote: > From: HuangXiaojia <huangxiaojia2@huawei.com> > > 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> Thanks,
Hello: This patch was applied to jaegeuk/f2fs.git (dev) by Jaegeuk Kim <jaegeuk@kernel.org>: On Thu, 1 Feb 2024 15:38:58 +0800 you wrote: > From: HuangXiaojia <huangxiaojia2@huawei.com> > > 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> > > [...] Here is the summary with links: - [f2fs-dev,Patch-next] f2fs: Use folio in f2fs_read_merkle_tree_page https://git.kernel.org/jaegeuk/f2fs/c/defcf26adff9 You are awesome, thank you!
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,