From ac8d5297650c2daf110a70f34c1b0415363bac4d Mon Sep 17 00:00:00 2001 From: Kirill Korotaev Date: Mon, 16 May 2005 21:53:18 -0700 Subject: [PATCH] --- yaml --- r: 1135 b: refs/heads/master c: 7179906293ebdc333f14a03d3e58b03604848f3c h: refs/heads/master i: 1133: 7e2ea50000fcf09248fbc126685e908c6c45c17a 1131: 0d97ceb1af0dde4bb74b082aecc2b95f455f472b 1127: 31245b515ac7f0b15834e0eef701fd724ed1e09d 1119: 480561a58aa1457fa190d322c4686efda4992a0f v: v3 --- [refs] | 2 +- trunk/mm/mremap.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 8d13bafa558d..3c1cacc705c2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 202d182a92c60416680e31baa697faa60b0882f5 +refs/heads/master: 7179906293ebdc333f14a03d3e58b03604848f3c diff --git a/trunk/mm/mremap.c b/trunk/mm/mremap.c index 0dd7ace94e51..ec7238a78f36 100644 --- a/trunk/mm/mremap.c +++ b/trunk/mm/mremap.c @@ -224,6 +224,12 @@ static unsigned long move_vma(struct vm_area_struct *vma, split = 1; } + /* + * if we failed to move page tables we still do total_vm increment + * since do_munmap() will decrement it by old_len == new_len + */ + mm->total_vm += new_len >> PAGE_SHIFT; + if (do_munmap(mm, old_addr, old_len) < 0) { /* OOM: unable to split vma, just get accounts right */ vm_unacct_memory(excess >> PAGE_SHIFT); @@ -237,7 +243,6 @@ static unsigned long move_vma(struct vm_area_struct *vma, vma->vm_next->vm_flags |= VM_ACCOUNT; } - mm->total_vm += new_len >> PAGE_SHIFT; __vm_stat_account(mm, vma->vm_flags, vma->vm_file, new_len>>PAGE_SHIFT); if (vm_flags & VM_LOCKED) { mm->locked_vm += new_len >> PAGE_SHIFT;