ANDROID: mm: unlock the page on speculative fault retry

It is observed that certain file accesses are failing when
speculative file faults are enabled via "allow_file_spec_access".
This is because of not unlocking the page on error in
filemap_map_pages, and the locked page causes endless retry of
fault.

Bug: 199706590
Fixes: 35eacb5c87 ("ANDROID: mm: allow vmas with vm_ops to be speculatively handled")
Change-Id: Ic7643ea8188aa281754318866fde09eea094c5da
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
This commit is contained in:
Vinayak Menon 2021-09-13 16:27:10 +05:30 committed by Kalesh Singh
parent fd2214199a
commit 4d9d866fe5

View File

@ -2996,6 +2996,8 @@ vm_fault_t filemap_map_pages(struct vm_fault *vmf,
addr = vma->vm_start + ((start_pgoff - vma->vm_pgoff) << PAGE_SHIFT);
if (!pte_map_lock_addr(vmf, addr)) {
unlock_page(head);
put_page(head);
ret = VM_FAULT_RETRY;
goto out;
}