diff options
author | Hugh Dickins <hugh@veritas.com> | 2005-07-12 16:58:09 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-12 19:00:58 -0400 |
commit | 3b6bfcdb116f2cc2cab921fcac6d39d4022952d2 (patch) | |
tree | b9bdc0f85d16bac6de043883880c203627bab9c5 /kernel | |
parent | 70d1d47c47c4643af357cb44d0d891c1b765f2ab (diff) |
[PATCH] lower VM_DONTCOPY total_vm
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>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/fork.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index cdef6cea8900..b65187f0c74e 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -208,8 +208,10 @@ static inline int dup_mmap(struct mm_struct * mm, struct mm_struct * oldmm) | |||
208 | struct file *file; | 208 | struct file *file; |
209 | 209 | ||
210 | if (mpnt->vm_flags & VM_DONTCOPY) { | 210 | if (mpnt->vm_flags & VM_DONTCOPY) { |
211 | long pages = vma_pages(mpnt); | ||
212 | mm->total_vm -= pages; | ||
211 | __vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file, | 213 | __vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file, |
212 | -vma_pages(mpnt)); | 214 | -pages); |
213 | continue; | 215 | continue; |
214 | } | 216 | } |
215 | charge = 0; | 217 | charge = 0; |