[PATCH] lower VM_DONTCOPY total_vm
authorHugh Dickins <hugh@veritas.com>
Tue, 12 Jul 2005 20:58:09 +0000 (13:58 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 12 Jul 2005 23:00:58 +0000 (16:00 -0700)
dup_mmap of a VM_DONTCOPY vma forgot to lower the child's total_vm.  (But
no way does this account for the recent report of total_vm seen too low.)

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/fork.c

index cdef6cea8900d67910bb1199ca7728c045a1737b..b65187f0c74e720281ff6f08b98e3bef19e638c4 100644 (file)
@@ -208,8 +208,10 @@ static inline int dup_mmap(struct mm_struct * mm, struct mm_struct * oldmm)
                struct file *file;
 
                if (mpnt->vm_flags & VM_DONTCOPY) {
+                       long pages = vma_pages(mpnt);
+                       mm->total_vm -= pages;
                        __vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file,
-                                                       -vma_pages(mpnt));
+                                                               -pages);
                        continue;
                }
                charge = 0;