diff options
author | Sidhartha Kumar <sidhartha.kumar@oracle.com> | 2023-07-06 09:38:47 -0700 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2023-08-18 10:12:15 -0700 |
commit | 22d1e68f5a23f8b068da77af6d037bc73748c6e3 (patch) | |
tree | f4df6bf83390ae4d4a89776376e37947abb07e0a /mm/memory.c | |
parent | 6f609b7e37dff1e8b2261e93da8e2e9848d5513c (diff) | |
download | lwn-22d1e68f5a23f8b068da77af6d037bc73748c6e3.tar.gz lwn-22d1e68f5a23f8b068da77af6d037bc73748c6e3.zip |
mm/memory: convert do_read_fault() to use folios
Saves one implicit call to compound_head().
Link: https://lkml.kernel.org/r/20230706163847.403202-4-sidhartha.kumar@oracle.com
Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: ZhangPeng <zhangpeng362@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'mm/memory.c')
-rw-r--r-- | mm/memory.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/mm/memory.c b/mm/memory.c index 7bebd6909199..ff19719da032 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4536,6 +4536,7 @@ static inline bool should_fault_around(struct vm_fault *vmf) static vm_fault_t do_read_fault(struct vm_fault *vmf) { vm_fault_t ret = 0; + struct folio *folio; /* * Let's call ->map_pages() first and use ->fault() as fallback @@ -4553,9 +4554,10 @@ static vm_fault_t do_read_fault(struct vm_fault *vmf) return ret; ret |= finish_fault(vmf); - unlock_page(vmf->page); + folio = page_folio(vmf->page); + folio_unlock(folio); if (unlikely(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE | VM_FAULT_RETRY))) - put_page(vmf->page); + folio_put(folio); return ret; } |