*/
 static int read_node_page(struct page *page, blk_opf_t op_flags)
 {
+       struct folio *folio = page_folio(page);
        struct f2fs_sb_info *sbi = F2FS_P_SB(page);
        struct node_info ni;
        struct f2fs_io_info fio = {
        };
        int err;
 
-       if (PageUptodate(page)) {
+       if (folio_test_uptodate(folio)) {
                if (!f2fs_inode_chksum_verify(sbi, page)) {
-                       ClearPageUptodate(page);
+                       folio_clear_uptodate(folio);
                        return -EFSBADCRC;
                }
                return LOCKED_PAGE;
        }
 
-       err = f2fs_get_node_info(sbi, page->index, &ni, false);
+       err = f2fs_get_node_info(sbi, folio->index, &ni, false);
        if (err)
                return err;
 
        /* NEW_ADDR can be seen, after cp_error drops some dirty node pages */
        if (unlikely(ni.blk_addr == NULL_ADDR || ni.blk_addr == NEW_ADDR)) {
-               ClearPageUptodate(page);
+               folio_clear_uptodate(folio);
                return -ENOENT;
        }