On 4/27/25 19:17, Chao Yu wrote: > On 4/1/25 04:10, Matthew Wilcox (Oracle) wrote: >> Remove a call to find_get_page(). Saves two hidden calls to >> compound_head(). Change f2fs_folio_put() to check for IS_ERR_OR_NULL >> to handle the case where we got an error pointer back from >> filemap_get_folio(). >> >> Signed-off-by: Matthew Wilcox (Oracle) <wi...@infradead.org> >> --- >> fs/f2fs/checkpoint.c | 8 ++++---- >> fs/f2fs/f2fs.h | 2 +- >> 2 files changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c >> index 1a5fbecd9356..30e68de82f73 100644 >> --- a/fs/f2fs/checkpoint.c >> +++ b/fs/f2fs/checkpoint.c >> @@ -325,16 +325,16 @@ int f2fs_ra_meta_pages(struct f2fs_sb_info *sbi, >> block_t start, int nrpages, >> void f2fs_ra_meta_pages_cond(struct f2fs_sb_info *sbi, pgoff_t index, >> unsigned int ra_blocks) >> { >> - struct page *page; >> + struct folio *folio; >> bool readahead = false; >> >> if (ra_blocks == RECOVERY_MIN_RA_BLOCKS) >> return; >> >> - page = find_get_page(META_MAPPING(sbi), index); >> - if (!page || !PageUptodate(page)) >> + folio = filemap_get_folio(META_MAPPING(sbi), index); >> + if (IS_ERR(folio) || !folio_test_uptodate(folio)) >> readahead = true; >> - f2fs_put_page(page, 0); >> + f2fs_folio_put(folio, 0); > > if (IS_ERR(folio)) > folio = NULL;
Oh, I missed that f2fs_folio_put() can handle error and NULL folio, please ignore this. > > if (!folio || !folio_test_uptodate(folio)) > readahead = true; > > f2fs_folio_put(folio, false); Only need to clean up the argument. Thanks, > > Thanks, > >> >> if (readahead) >> f2fs_ra_meta_pages(sbi, index, ra_blocks, META_POR, true); >> diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h >> index 3d2be01f9363..f05185ed1c75 100644 >> --- a/fs/f2fs/f2fs.h >> +++ b/fs/f2fs/f2fs.h >> @@ -2871,7 +2871,7 @@ static inline struct page *f2fs_pagecache_get_page( >> >> static inline void f2fs_folio_put(struct folio *folio, bool unlock) >> { >> - if (!folio) >> + if (IS_ERR_OR_NULL(folio)) >> return; >> >> if (unlock) { > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel