]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm/mmap: move VMA locking before anon_vma_lock_write call
authorSuren Baghdasaryan <surenb@google.com>
Sun, 30 Oct 2022 02:45:01 +0000 (02:45 +0000)
committerSuren Baghdasaryan <surenb@google.com>
Wed, 23 Nov 2022 02:09:45 +0000 (02:09 +0000)
Move VMA flag modification (which now implies VMA locking) before
anon_vma_lock_write to match the locking order of page fault handler.

Signed-off-by: Suren Baghdasaryan <surenb@google.com>
mm/mmap.c

index f615f5762dd461a6c7d04943ad4a01fbfd42160e..5ffff953c57072979bed312ad6ffb4991498c66e 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2956,13 +2956,13 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma,
                if (mas_preallocate(mas, vma, GFP_KERNEL))
                        return -ENOMEM;
 
+               set_vm_flags(vma, VM_SOFTDIRTY);
                vma_adjust_trans_huge(vma, vma->vm_start, addr + len, 0);
                if (vma->anon_vma) {
                        anon_vma_lock_write(vma->anon_vma);
                        anon_vma_interval_tree_pre_update_vma(vma);
                }
                vma->vm_end = addr + len;
-               set_vm_flags(vma, VM_SOFTDIRTY);
                mas_store_prealloc(mas, vma);
 
                if (vma->anon_vma) {