diff options
author | David S. Miller <davem@davemloft.net> | 2020-04-25 19:24:42 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-04-25 20:18:53 -0700 |
commit | d483389678f9e03d53f226641ea39679debcbc81 (patch) | |
tree | e33c9e59627e806ef97be9ef66c48afb1e4ab393 /mm/mremap.c | |
parent | 6033cebdfff9b10192eb254e8cc60fedd595ea7f (diff) | |
parent | b2768df24ec400dd4f7fa79542f797e904812053 (diff) | |
download | lwn-d483389678f9e03d53f226641ea39679debcbc81.tar.gz lwn-d483389678f9e03d53f226641ea39679debcbc81.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Simple overlapping changes to linux/vermagic.h
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'mm/mremap.c')
-rw-r--r-- | mm/mremap.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/mm/mremap.c b/mm/mremap.c index a7e282ead438..c881abeba0bf 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -413,9 +413,20 @@ static unsigned long move_vma(struct vm_area_struct *vma, /* Always put back VM_ACCOUNT since we won't unmap */ vma->vm_flags |= VM_ACCOUNT; - vm_acct_memory(vma_pages(new_vma)); + vm_acct_memory(new_len >> PAGE_SHIFT); } + /* + * VMAs can actually be merged back together in copy_vma + * calling merge_vma. This can happen with anonymous vmas + * which have not yet been faulted, so if we were to consider + * this VMA split we'll end up adding VM_ACCOUNT on the + * next VMA, which is completely unrelated if this VMA + * was re-merged. + */ + if (split && new_vma == vma) + split = 0; + /* We always clear VM_LOCKED[ONFAULT] on the old vma */ vma->vm_flags &= VM_LOCKED_CLEAR_MASK; |