Message ID | 20230703055850.227169-4-sidhartha.kumar@oracle.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/4] mm/memory: convert do_page_mkwrite() to use folios | expand |
On 2023/7/3 13:58, Sidhartha Kumar wrote: > Saves one implicit call to compound_head() > > Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> Reviewed-by: ZhangPeng <zhangpeng362@huawei.com> > --- > mm/memory.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index 33bf13431974c..b97c66df4adac 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4528,6 +4528,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 = page_folio(vmf->page); > > /* > * Let's call ->map_pages() first and use ->fault() as fallback > @@ -4545,9 +4546,9 @@ static vm_fault_t do_read_fault(struct vm_fault *vmf) > return ret; > > ret |= finish_fault(vmf); > - unlock_page(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; > } >
On Sun, Jul 02, 2023 at 10:58:50PM -0700, Sidhartha Kumar wrote: > +++ b/mm/memory.c > @@ -4528,6 +4528,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 = page_folio(vmf->page); Similarly, vmf->page is not initialised until after __do_fault().
diff --git a/mm/memory.c b/mm/memory.c index 33bf13431974c..b97c66df4adac 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4528,6 +4528,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 = page_folio(vmf->page); /* * Let's call ->map_pages() first and use ->fault() as fallback @@ -4545,9 +4546,9 @@ static vm_fault_t do_read_fault(struct vm_fault *vmf) return ret; ret |= finish_fault(vmf); - unlock_page(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; }
Saves one implicit call to compound_head() Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> --- mm/memory.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)