diff options
Diffstat (limited to 'mm/internal.h')
-rw-r--r-- | mm/internal.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/mm/internal.h b/mm/internal.h index 44c8dec1f0d7..93083bbeeefa 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -320,7 +320,16 @@ static inline void wake_throttle_isolated(pg_data_t *pgdat) wake_up(wqh); } -vm_fault_t vmf_anon_prepare(struct vm_fault *vmf); +vm_fault_t __vmf_anon_prepare(struct vm_fault *vmf); +static inline vm_fault_t vmf_anon_prepare(struct vm_fault *vmf) +{ + vm_fault_t ret = __vmf_anon_prepare(vmf); + + if (unlikely(ret & VM_FAULT_RETRY)) + vma_end_read(vmf->vma); + return ret; +} + vm_fault_t do_swap_page(struct vm_fault *vmf); void folio_rotate_reclaimable(struct folio *folio); bool __folio_end_writeback(struct folio *folio); |