]> Git Repo - linux.git/commitdiff
mm/mmap: convert do_brk_flags() to use vma_prepare() and vma_complete()
authorLiam R. Howlett <[email protected]>
Fri, 20 Jan 2023 16:26:48 +0000 (11:26 -0500)
committerAndrew Morton <[email protected]>
Fri, 10 Feb 2023 00:51:38 +0000 (16:51 -0800)
Use the abstracted vma locking for do_brk_flags()

Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Liam R. Howlett <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
mm/mmap.c

index 265c4605dad2cd6eb16fa26fbb00d7fed2829c5d..604ba8293a95ed7a1a527e36b33a73a0e78c2134 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2936,6 +2936,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);
        /*
@@ -2963,18 +2964,13 @@ static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *vma,
                        goto unacct_fail;
 
                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;
        }
This page took 0.08303 seconds and 4 git commands to generate.