]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm/mmap: Convert do_brk_flags() to use vma_prepare() and vma_complete()
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Thu, 11 Aug 2022 15:54:23 +0000 (11:54 -0400)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Tue, 13 Dec 2022 21:03:40 +0000 (16:03 -0500)
Use the abstracted vma locking for do_brk_flags()

Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
mm/mmap.c

index d7ead66b60d49f14648feb71ab36068180f284c9..4176037c5ff11bfcfb34a1a40f8a201af7ba7d83 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2979,6 +2979,7 @@ static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *vma,
                unsigned long addr, unsigned long len, unsigned long flags)
 {
        struct mm_struct *mm = current->mm;
+       struct vma_prepare vp;
 
        validate_mm_mt(mm);
        /*
@@ -3006,18 +3007,13 @@ static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *vma,
                        return -ENOMEM;
 
                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);
-               }
+               init_vma_prep(&vp, vma);
+               vma_prepare(&vp);
                vma->vm_end = addr + len;
                vma->vm_flags |= VM_SOFTDIRTY;
                vma_iter_store(vmi, vma);
 
-               if (vma->anon_vma) {
-                       anon_vma_interval_tree_post_update_vma(vma);
-                       anon_vma_unlock_write(vma->anon_vma);
-               }
+               vma_complete(&vp, vmi, mm);
                khugepaged_enter_vma(vma, flags);
                goto out;
        }