Unlike `pagecache_get_page()`, `__filemap_get_folio()` returns error
pointers instead of NULL, thus switching to `IS_ERR_OR_NULL`.

Apart from that, it's just a straightforward conversion.

Signed-off-by: Gao Xiang <hsiang...@linux.alibaba.com>
---
 fs/erofs/internal.h | 14 +++++---------
 fs/erofs/zdata.c    | 15 +++++++--------
 2 files changed, 12 insertions(+), 17 deletions(-)

diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h
index 0c1b44ac9524..9a72fcbc0b30 100644
--- a/fs/erofs/internal.h
+++ b/fs/erofs/internal.h
@@ -312,17 +312,13 @@ static inline unsigned int 
erofs_inode_datalayout(unsigned int ifmt)
        return (ifmt >> EROFS_I_DATALAYOUT_BIT) & EROFS_I_DATALAYOUT_MASK;
 }
 
-/*
- * Different from grab_cache_page_nowait(), reclaiming is never triggered
- * when allocating new pages.
- */
-static inline
-struct page *erofs_grab_cache_page_nowait(struct address_space *mapping,
-                                         pgoff_t index)
+/* reclaiming is never triggered when allocating new folios. */
+static inline struct folio *erofs_grab_folio_nowait(struct address_space *as,
+                                                   pgoff_t index)
 {
-       return pagecache_get_page(mapping, index,
+       return __filemap_get_folio(as, index,
                        FGP_LOCK|FGP_CREAT|FGP_NOFS|FGP_NOWAIT,
-                       readahead_gfp_mask(mapping) & ~__GFP_RECLAIM);
+                       readahead_gfp_mask(as) & ~__GFP_RECLAIM);
 }
 
 /* Has a disk mapping */
diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c
index d6fe002a4a71..14cf96fcefe4 100644
--- a/fs/erofs/zdata.c
+++ b/fs/erofs/zdata.c
@@ -1767,7 +1767,6 @@ static void z_erofs_pcluster_readmore(struct 
z_erofs_decompress_frontend *f,
                end = round_up(end, PAGE_SIZE);
        } else {
                end = round_up(map->m_la, PAGE_SIZE);
-
                if (!map->m_llen)
                        return;
        }
@@ -1775,15 +1774,15 @@ static void z_erofs_pcluster_readmore(struct 
z_erofs_decompress_frontend *f,
        cur = map->m_la + map->m_llen - 1;
        while ((cur >= end) && (cur < i_size_read(inode))) {
                pgoff_t index = cur >> PAGE_SHIFT;
-               struct page *page;
+               struct folio *folio;
 
-               page = erofs_grab_cache_page_nowait(inode->i_mapping, index);
-               if (page) {
-                       if (PageUptodate(page))
-                               unlock_page(page);
+               folio = erofs_grab_folio_nowait(inode->i_mapping, index);
+               if (!IS_ERR_OR_NULL(folio)) {
+                       if (folio_test_uptodate(folio))
+                               folio_unlock(folio);
                        else
-                               z_erofs_scan_folio(f, page_folio(page), !!rac);
-                       put_page(page);
+                               z_erofs_scan_folio(f, folio, !!rac);
+                       folio_put(folio);
                }
 
                if (cur < PAGE_SIZE)
-- 
2.43.5

Reply via email to