]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
vma_merge: Set vma iterator to correct position.
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Wed, 16 Nov 2022 17:29:34 +0000 (12:29 -0500)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Tue, 13 Dec 2022 21:03:40 +0000 (16:03 -0500)
When merging the previous value, set the vma iterator to the previous
slot.  Don't use the vma iterator to get the next/prev so that it is in
the correct position for a write.

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

index 3c52c5201b19f50d5a669b430d888915b0820196..066c1416efc444868a9d91896c606342c957c021 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -994,6 +994,7 @@ struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *mm,
                    && can_vma_merge_after(prev, vm_flags, anon_vma, file,
                                   pgoff, vm_userfaultfd_ctx, anon_name)) {
                        merge_prev = true;
+                       vma_prev(vmi);
                }
        }
        /* Can we merge the successor? */
@@ -1085,9 +1086,6 @@ struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *mm,
        validate_mm(mm);
        khugepaged_enter_vma(res, vm_flags);
 
-       if (res)
-               vma_iter_set(vmi, end);
-
        return res;
 }