@@ -1918,21 +1918,22 @@ void free_huge_page(struct page *page)
1918
1918
* Can't pass hstate in here because it is called from the
1919
1919
* compound page destructor.
1920
1920
*/
1921
- struct hstate * h = page_hstate (page );
1922
- int nid = page_to_nid (page );
1923
- struct hugepage_subpool * spool = hugetlb_page_subpool (page );
1921
+ struct folio * folio = page_folio (page );
1922
+ struct hstate * h = folio_hstate (folio );
1923
+ int nid = folio_nid (folio );
1924
+ struct hugepage_subpool * spool = hugetlb_folio_subpool (folio );
1924
1925
bool restore_reserve ;
1925
1926
unsigned long flags ;
1926
1927
1927
- VM_BUG_ON_PAGE ( page_count ( page ), page );
1928
- VM_BUG_ON_PAGE ( page_mapcount ( page ), page );
1928
+ VM_BUG_ON_FOLIO ( folio_ref_count ( folio ), folio );
1929
+ VM_BUG_ON_FOLIO ( folio_mapcount ( folio ), folio );
1929
1930
1930
- hugetlb_set_page_subpool ( page , NULL );
1931
- if (PageAnon ( page ))
1932
- __ClearPageAnonExclusive (page );
1933
- page -> mapping = NULL ;
1934
- restore_reserve = HPageRestoreReserve ( page );
1935
- ClearHPageRestoreReserve ( page );
1931
+ hugetlb_set_folio_subpool ( folio , NULL );
1932
+ if (folio_test_anon ( folio ))
1933
+ __ClearPageAnonExclusive (& folio -> page );
1934
+ folio -> mapping = NULL ;
1935
+ restore_reserve = folio_test_hugetlb_restore_reserve ( folio );
1936
+ folio_clear_hugetlb_restore_reserve ( folio );
1936
1937
1937
1938
/*
1938
1939
* If HPageRestoreReserve was set on page, page allocation consumed a
@@ -1954,15 +1955,15 @@ void free_huge_page(struct page *page)
1954
1955
}
1955
1956
1956
1957
spin_lock_irqsave (& hugetlb_lock , flags );
1957
- ClearHPageMigratable ( page );
1958
+ folio_clear_hugetlb_migratable ( folio );
1958
1959
hugetlb_cgroup_uncharge_page (hstate_index (h ),
1959
1960
pages_per_huge_page (h ), page );
1960
1961
hugetlb_cgroup_uncharge_page_rsvd (hstate_index (h ),
1961
1962
pages_per_huge_page (h ), page );
1962
1963
if (restore_reserve )
1963
1964
h -> resv_huge_pages ++ ;
1964
1965
1965
- if (HPageTemporary ( page )) {
1966
+ if (folio_test_hugetlb_temporary ( folio )) {
1966
1967
remove_hugetlb_page (h , page , false);
1967
1968
spin_unlock_irqrestore (& hugetlb_lock , flags );
1968
1969
update_and_free_page (h , page , true);
0 commit comments