OSDN Git Service

hugetlb: remove uses of compound_dtor and compound_nr
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 11 Jan 2023 14:29:07 +0000 (14:29 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 3 Feb 2023 06:32:59 +0000 (22:32 -0800)
Convert the entire file to use the folio equivalents.

Link: https://lkml.kernel.org/r/20230111142915.1001531-22-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/hugetlb.c

index a68e0e5..ca9e177 100644 (file)
@@ -2038,11 +2038,12 @@ static bool prep_compound_gigantic_folio_for_demote(struct folio *folio,
  */
 int PageHuge(struct page *page)
 {
+       struct folio *folio;
+
        if (!PageCompound(page))
                return 0;
-
-       page = compound_head(page);
-       return page[1].compound_dtor == HUGETLB_PAGE_DTOR;
+       folio = page_folio(page);
+       return folio->_folio_dtor == HUGETLB_PAGE_DTOR;
 }
 EXPORT_SYMBOL_GPL(PageHuge);
 
@@ -2052,10 +2053,11 @@ EXPORT_SYMBOL_GPL(PageHuge);
  */
 int PageHeadHuge(struct page *page_head)
 {
-       if (!PageHead(page_head))
+       struct folio *folio = (struct folio *)page_head;
+       if (!folio_test_large(folio))
                return 0;
 
-       return page_head[1].compound_dtor == HUGETLB_PAGE_DTOR;
+       return folio->_folio_dtor == HUGETLB_PAGE_DTOR;
 }
 EXPORT_SYMBOL_GPL(PageHeadHuge);