mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
mm/hugetlb: convert hugetlb fault paths to use alloc_hugetlb_folio()
Change alloc_huge_page() to alloc_hugetlb_folio() by changing all callers to handle the now folio return type of the function. In this conversion, alloc_huge_page_vma() is also changed to alloc_hugetlb_folio_vma() and hugepage_add_new_anon_rmap() is changed to take in a folio directly. Many additions of '&folio->page' are cleaned up in subsequent patches. hugetlbfs_fallocate() is also refactored to use the RCU + page_cache_next_miss() API. Link: https://lkml.kernel.org/r/20230125170537.96973-5-sidhartha.kumar@oracle.com Suggested-by: Mike Kravetz <mike.kravetz@oracle.com> Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com> Cc: John Hubbard <jhubbard@nvidia.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Muchun Song <songmuchun@bytedance.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
committed by
Andrew Morton
parent
ea8e72f411
commit
d0ce0e47b3
@@ -2534,15 +2534,13 @@ void hugepage_add_anon_rmap(struct page *page, struct vm_area_struct *vma,
|
||||
!!(flags & RMAP_EXCLUSIVE));
|
||||
}
|
||||
|
||||
void hugepage_add_new_anon_rmap(struct page *page,
|
||||
void hugepage_add_new_anon_rmap(struct folio *folio,
|
||||
struct vm_area_struct *vma, unsigned long address)
|
||||
{
|
||||
struct folio *folio = page_folio(page);
|
||||
|
||||
BUG_ON(address < vma->vm_start || address >= vma->vm_end);
|
||||
/* increment count (starts at -1) */
|
||||
atomic_set(&folio->_entire_mapcount, 0);
|
||||
folio_clear_hugetlb_restore_reserve(folio);
|
||||
__page_set_anon_rmap(folio, page, vma, address, 1);
|
||||
__page_set_anon_rmap(folio, &folio->page, vma, address, 1);
|
||||
}
|
||||
#endif /* CONFIG_HUGETLB_PAGE */
|
||||
|
Reference in New Issue
Block a user