mm/khugepaged: use a folio more in collapse_file()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Thu, 28 Dec 2023 08:57:47 +0000 (08:57 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 5 Jan 2024 18:17:46 +0000 (10:17 -0800)
This function is not yet fully converted to the folio API, but this
removes a few uses of old APIs.

Link: https://lkml.kernel.org/r/20231228085748.1083901-6-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/khugepaged.c

index 15ec9c729ae582ba637a7a25fb6d5d190dc85c6e..3defe6713ef1c4f839fd8d9cb965a3e9523613fb 100644 (file)
@@ -2122,23 +2122,23 @@ immap_locked:
                xas_lock_irq(&xas);
        }
 
-       nr = thp_nr_pages(hpage);
+       folio = page_folio(hpage);
+       nr = folio_nr_pages(folio);
        if (is_shmem)
-               __mod_lruvec_page_state(hpage, NR_SHMEM_THPS, nr);
+               __lruvec_stat_mod_folio(folio, NR_SHMEM_THPS, nr);
        else
-               __mod_lruvec_page_state(hpage, NR_FILE_THPS, nr);
+               __lruvec_stat_mod_folio(folio, NR_FILE_THPS, nr);
 
        if (nr_none) {
-               __mod_lruvec_page_state(hpage, NR_FILE_PAGES, nr_none);
+               __lruvec_stat_mod_folio(folio, NR_FILE_PAGES, nr_none);
                /* nr_none is always 0 for non-shmem. */
-               __mod_lruvec_page_state(hpage, NR_SHMEM, nr_none);
+               __lruvec_stat_mod_folio(folio, NR_SHMEM, nr_none);
        }
 
        /*
         * Mark hpage as uptodate before inserting it into the page cache so
         * that it isn't mistaken for an fallocated but unwritten page.
         */
-       folio = page_folio(hpage);
        folio_mark_uptodate(folio);
        folio_ref_add(folio, HPAGE_PMD_NR - 1);
 
@@ -2148,7 +2148,7 @@ immap_locked:
 
        /* Join all the small entries into a single multi-index entry. */
        xas_set_order(&xas, start, HPAGE_PMD_ORDER);
-       xas_store(&xas, hpage);
+       xas_store(&xas, folio);
        WARN_ON_ONCE(xas_error(&xas));
        xas_unlock_irq(&xas);
 
@@ -2159,7 +2159,7 @@ immap_locked:
        retract_page_tables(mapping, start);
        if (cc && !cc->is_khugepaged)
                result = SCAN_PTE_MAPPED_HUGEPAGE;
-       unlock_page(hpage);
+       folio_unlock(folio);
 
        /*
         * The collapse has succeeded, so free the old pages.