From 9e066d4b35fe9eb9cf007702bf6c3e50623026fd Mon Sep 17 00:00:00 2001 From: "Matthew Wilcox (Oracle)" Date: Sat, 12 Aug 2023 01:20:33 +0100 Subject: [PATCH] FROMLIST: mm: Allow fault_dirty_shared_page() to be called under the VMA lock By making maybe_unlock_mmap_for_io() handle the VMA lock correctly, we make fault_dirty_shared_page() safe to be called without the mmap lock held. Signed-off-by: Matthew Wilcox (Oracle) Reported-by: David Hildenbrand Tested-by: Suren Baghdasaryan Link: https://lore.kernel.org/all/20230812002033.1002367-1-willy@infradead.org/ Bug: 293665307 Change-Id: Ifed050cc4d194c538765ab403de09199b94c7b1b Signed-off-by: Suren Baghdasaryan --- mm/internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/internal.h b/mm/internal.h index fe0925d7cbb5..0997c0c82c02 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -619,7 +619,7 @@ static inline struct file *maybe_unlock_mmap_for_io(struct vm_fault *vmf, if (fault_flag_allow_retry_first(flags) && !(flags & FAULT_FLAG_RETRY_NOWAIT)) { fpin = get_file(vmf->vma->vm_file); - mmap_read_unlock(vmf->vma->vm_mm); + release_fault_lock(vmf); } return fpin; }