}
 }
 
-static bool is_refcount_suitable(struct page *page)
+static bool is_refcount_suitable(struct folio *folio)
 {
        int expected_refcount;
 
-       expected_refcount = total_mapcount(page);
-       if (PageSwapCache(page))
-               expected_refcount += compound_nr(page);
+       expected_refcount = folio_mapcount(folio);
+       if (folio_test_swapcache(folio))
+               expected_refcount += folio_nr_pages(folio);
 
-       return page_count(page) == expected_refcount;
+       return folio_ref_count(folio) == expected_refcount;
 }
 
 static int __collapse_huge_page_isolate(struct vm_area_struct *vma,
                 * but not from this process. The other process cannot write to
                 * the page, only trigger CoW.
                 */
-               if (!is_refcount_suitable(&folio->page)) {
+               if (!is_refcount_suitable(folio)) {
                        folio_unlock(folio);
                        result = SCAN_PAGE_COUNT;
                        goto out;
                 * has excessive GUP pins (i.e. 512).  Anyway the same check
                 * will be done again later the risk seems low.
                 */
-               if (!is_refcount_suitable(&folio->page)) {
+               if (!is_refcount_suitable(folio)) {
                        result = SCAN_PAGE_COUNT;
                        goto out_unmap;
                }