The patch titled Subject: mm: mremap: unlink anon_vmas when mremap with MREMAP_DONTUNMAP success has been added to the -mm tree. Its filename is mm-mremap-unlink-anon_vmas-when-mremap-with-mremap_dontunmap-success-v2.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/mm-mremap-unlink-anon_vmas-when-mremap-with-mremap_dontunmap-success-v2.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/mm-mremap-unlink-anon_vmas-when-mremap-with-mremap_dontunmap-success-v2.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Li Xinhai <lixinhai.lxh@xxxxxxxxx> Subject: mm: mremap: unlink anon_vmas when mremap with MREMAP_DONTUNMAP success Need to consider the old vma just been partially moved, if so we must keep the anon_vma links for remaining mapped pages in old vma. Link: https://lkml.kernel.org/r/20210127083917.309264-2-lixinhai.lxh@xxxxxxxxx Signed-off-by: Li Xinhai <lixinhai.lxh@xxxxxxxxx> Cc: Brian Geffon <bgeffon@xxxxxxxxxx> Cc: Lokesh Gidra <lokeshgidra@xxxxxxxxxx> Cc: Minchan Kim <minchan@xxxxxxxxxx> Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Cc: Vlastimil Babka <vbabka@xxxxxxx> Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/mremap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/mm/mremap.c~mm-mremap-unlink-anon_vmas-when-mremap-with-mremap_dontunmap-success-v2 +++ a/mm/mremap.c @@ -599,7 +599,8 @@ static unsigned long move_vma(struct vm_ * anon_vma links of the old vma is no longer needed after its page * table has been moved. */ - if (new_vma != vma) + if (new_vma != vma && vma->vm_start == old_addr && + vma->vm_end == (old_addr + old_len)) unlink_anon_vmas(vma); /* Because we won't unmap we don't need to touch locked_vm */ _ Patches currently in -mm which might be from lixinhai.lxh@xxxxxxxxx are mm-rmap-explicitly-reset-vma-anon_vma-in-unlink_anon_vmas.patch mm-mremap-unlink-anon_vmas-when-mremap-with-mremap_dontunmap-success.patch mm-mremap-unlink-anon_vmas-when-mremap-with-mremap_dontunmap-success-v2.patch mm-hugetlbc-fix-unnecessary-address-expansion-of-pmd-sharing.patch