diff options
Diffstat (limited to 'kernel/acct.c')
| -rw-r--r-- | kernel/acct.c | 11 | 
1 files changed, 5 insertions, 6 deletions
diff --git a/kernel/acct.c b/kernel/acct.c index 13706356ec54..62200d799b9b 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -555,15 +555,14 @@ void acct_collect(long exitcode, int group_dead)  	unsigned long vsize = 0;  	if (group_dead && current->mm) { +		struct mm_struct *mm = current->mm; +		VMA_ITERATOR(vmi, mm, 0);  		struct vm_area_struct *vma; -		mmap_read_lock(current->mm); -		vma = current->mm->mmap; -		while (vma) { +		mmap_read_lock(mm); +		for_each_vma(vmi, vma)  			vsize += vma->vm_end - vma->vm_start; -			vma = vma->vm_next; -		} -		mmap_read_unlock(current->mm); +		mmap_read_unlock(mm);  	}  	spin_lock_irq(¤t->sighand->siglock);  |