Commit 6e8cda4c authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle) Committed by Andrew Morton

mm: convert hugetlb_page_mapping_lock_write to folio

The page is only used to get the mapping, so the folio will do just as
well.  Both callers already have a folio available, so this saves a call
to compound_head().

Link: https://lkml.kernel.org/r/20240412193510.2356957-7-willy@infradead.orgSigned-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: default avatarJane Chu  <jane.chu@oracle.com>
Reviewed-by: default avatarOscar Salvador <osalvador@suse.de>
Acked-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent fed5348e
...@@ -178,7 +178,7 @@ bool hugetlbfs_pagecache_present(struct hstate *h, ...@@ -178,7 +178,7 @@ bool hugetlbfs_pagecache_present(struct hstate *h,
struct vm_area_struct *vma, struct vm_area_struct *vma,
unsigned long address); unsigned long address);
struct address_space *hugetlb_page_mapping_lock_write(struct page *hpage); struct address_space *hugetlb_folio_mapping_lock_write(struct folio *folio);
extern int sysctl_hugetlb_shm_group; extern int sysctl_hugetlb_shm_group;
extern struct list_head huge_boot_pages[MAX_NUMNODES]; extern struct list_head huge_boot_pages[MAX_NUMNODES];
...@@ -297,8 +297,8 @@ static inline unsigned long hugetlb_total_pages(void) ...@@ -297,8 +297,8 @@ static inline unsigned long hugetlb_total_pages(void)
return 0; return 0;
} }
static inline struct address_space *hugetlb_page_mapping_lock_write( static inline struct address_space *hugetlb_folio_mapping_lock_write(
struct page *hpage) struct folio *folio)
{ {
return NULL; return NULL;
} }
......
...@@ -2155,13 +2155,13 @@ static bool prep_compound_gigantic_folio_for_demote(struct folio *folio, ...@@ -2155,13 +2155,13 @@ static bool prep_compound_gigantic_folio_for_demote(struct folio *folio,
/* /*
* Find and lock address space (mapping) in write mode. * Find and lock address space (mapping) in write mode.
* *
* Upon entry, the page is locked which means that page_mapping() is * Upon entry, the folio is locked which means that folio_mapping() is
* stable. Due to locking order, we can only trylock_write. If we can * stable. Due to locking order, we can only trylock_write. If we can
* not get the lock, simply return NULL to caller. * not get the lock, simply return NULL to caller.
*/ */
struct address_space *hugetlb_page_mapping_lock_write(struct page *hpage) struct address_space *hugetlb_folio_mapping_lock_write(struct folio *folio)
{ {
struct address_space *mapping = page_mapping(hpage); struct address_space *mapping = folio_mapping(folio);
if (!mapping) if (!mapping)
return mapping; return mapping;
......
...@@ -1624,7 +1624,7 @@ static bool hwpoison_user_mappings(struct page *p, unsigned long pfn, ...@@ -1624,7 +1624,7 @@ static bool hwpoison_user_mappings(struct page *p, unsigned long pfn,
* TTU_RMAP_LOCKED to indicate we have taken the lock * TTU_RMAP_LOCKED to indicate we have taken the lock
* at this higher level. * at this higher level.
*/ */
mapping = hugetlb_page_mapping_lock_write(hpage); mapping = hugetlb_folio_mapping_lock_write(folio);
if (mapping) { if (mapping) {
try_to_unmap(folio, ttu|TTU_RMAP_LOCKED); try_to_unmap(folio, ttu|TTU_RMAP_LOCKED);
i_mmap_unlock_write(mapping); i_mmap_unlock_write(mapping);
......
...@@ -1425,7 +1425,7 @@ static int unmap_and_move_huge_page(new_folio_t get_new_folio, ...@@ -1425,7 +1425,7 @@ static int unmap_and_move_huge_page(new_folio_t get_new_folio,
* semaphore in write mode here and set TTU_RMAP_LOCKED * semaphore in write mode here and set TTU_RMAP_LOCKED
* to let lower levels know we have taken the lock. * to let lower levels know we have taken the lock.
*/ */
mapping = hugetlb_page_mapping_lock_write(&src->page); mapping = hugetlb_folio_mapping_lock_write(src);
if (unlikely(!mapping)) if (unlikely(!mapping))
goto unlock_put_anon; goto unlock_put_anon;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment