Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mm: convert lock_page_or_retry() to folio_lock_or_retry()

Remove a call to compound_head() in each of the two callers.

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

authored by

Matthew Wilcox (Oracle) and committed by
Andrew Morton
19672a9e 82e66bf7

+8 -11
+3 -6
include/linux/pagemap.h
··· 989 989 } 990 990 991 991 /* 992 - * lock_page_or_retry - Lock the page, unless this would block and the 992 + * folio_lock_or_retry - Lock the folio, unless this would block and the 993 993 * caller indicated that it can handle a retry. 994 994 * 995 995 * Return value and mmap_lock implications depend on flags; see 996 996 * __folio_lock_or_retry(). 997 997 */ 998 - static inline bool lock_page_or_retry(struct page *page, struct mm_struct *mm, 999 - unsigned int flags) 998 + static inline bool folio_lock_or_retry(struct folio *folio, 999 + struct mm_struct *mm, unsigned int flags) 1000 1000 { 1001 - struct folio *folio; 1002 1001 might_sleep(); 1003 - 1004 - folio = page_folio(page); 1005 1002 return folio_trylock(folio) || __folio_lock_or_retry(folio, mm, flags); 1006 1003 } 1007 1004
+5 -5
mm/memory.c
··· 3618 3618 */ 3619 3619 static vm_fault_t remove_device_exclusive_entry(struct vm_fault *vmf) 3620 3620 { 3621 - struct page *page = vmf->page; 3621 + struct folio *folio = page_folio(vmf->page); 3622 3622 struct vm_area_struct *vma = vmf->vma; 3623 3623 struct mmu_notifier_range range; 3624 3624 3625 - if (!lock_page_or_retry(page, vma->vm_mm, vmf->flags)) 3625 + if (!folio_lock_or_retry(folio, vma->vm_mm, vmf->flags)) 3626 3626 return VM_FAULT_RETRY; 3627 3627 mmu_notifier_range_init_owner(&range, MMU_NOTIFY_EXCLUSIVE, 0, vma, 3628 3628 vma->vm_mm, vmf->address & PAGE_MASK, ··· 3632 3632 vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address, 3633 3633 &vmf->ptl); 3634 3634 if (likely(pte_same(*vmf->pte, vmf->orig_pte))) 3635 - restore_exclusive_pte(vma, page, vmf->address, vmf->pte); 3635 + restore_exclusive_pte(vma, vmf->page, vmf->address, vmf->pte); 3636 3636 3637 3637 pte_unmap_unlock(vmf->pte, vmf->ptl); 3638 - unlock_page(page); 3638 + folio_unlock(folio); 3639 3639 3640 3640 mmu_notifier_invalidate_range_end(&range); 3641 3641 return 0; ··· 3835 3835 goto out_release; 3836 3836 } 3837 3837 3838 - locked = lock_page_or_retry(page, vma->vm_mm, vmf->flags); 3838 + locked = folio_lock_or_retry(folio, vma->vm_mm, vmf->flags); 3839 3839 3840 3840 if (!locked) { 3841 3841 ret |= VM_FAULT_RETRY;