lkml.org 
[lkml]   [2022]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH v3 2/6] [PATCH 2/6] mm: add merging after mremap resize
    Date
    When mremap call results in expansion, it might be possible to merge the
    VMA with the next VMA which might become adjacent. This patch adds
    vma_merge call after the expansion is done to try and merge.

    Signed-off-by: Jakub Matěna <matenajakub@gmail.com>
    ---
    mm/mremap.c | 7 +++++--
    1 file changed, 5 insertions(+), 2 deletions(-)

    diff --git a/mm/mremap.c b/mm/mremap.c
    index 303d3290b938..75cda854ec58 100644
    --- a/mm/mremap.c
    +++ b/mm/mremap.c
    @@ -9,6 +9,7 @@
    */

    #include <linux/mm.h>
    +#include <linux/mm_inline.h>
    #include <linux/hugetlb.h>
    #include <linux/shm.h>
    #include <linux/ksm.h>
    @@ -1022,8 +1023,10 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
    }
    }

    - if (vma_adjust(vma, vma->vm_start, addr + new_len,
    - vma->vm_pgoff, NULL)) {
    + if (!vma_merge(mm, vma, addr + old_len, addr + new_len,
    + vma->vm_flags, vma->anon_vma, vma->vm_file,
    + vma->vm_pgoff + (old_len >> PAGE_SHIFT), vma_policy(vma),
    + vma->vm_userfaultfd_ctx, anon_vma_name(vma))) {
    vm_unacct_memory(pages);
    ret = -ENOMEM;
    goto out;
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-05-16 14:55    [W:3.530 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site