diff --git a/mm/filemap.c b/mm/filemap.c
index 298485d4b99275197ff94b1bef518a881a6e6b7f..657bcd887fdb81aaf89b2f856bf487a0721abf64 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -3231,7 +3231,8 @@ static vm_fault_t filemap_fault_recheck_pte_none(struct vm_fault *vmf)
 	if (!(vmf->flags & FAULT_FLAG_ORIG_PTE_VALID))
 		return 0;
 
-	ptep = pte_offset_map(vmf->pmd, vmf->address);
+	ptep = pte_offset_map_nolock(vma->vm_mm, vmf->pmd, vmf->address,
+				     &vmf->ptl);
 	if (unlikely(!ptep))
 		return VM_FAULT_NOPAGE;