diff options
Diffstat (limited to 'mm/mmap.c')
| -rw-r--r-- | mm/mmap.c | 11 | 
1 files changed, 2 insertions, 9 deletions
diff --git a/mm/mmap.c b/mm/mmap.c index 3edfcdfa42d..e3e86914f11 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -943,6 +943,8 @@ void vm_stat_account(struct mm_struct *mm, unsigned long flags,  	const unsigned long stack_flags  		= VM_STACK_FLAGS & (VM_GROWSUP|VM_GROWSDOWN); +	mm->total_vm += pages; +  	if (file) {  		mm->shared_vm += pages;  		if ((flags & (VM_EXEC|VM_WRITE)) == VM_EXEC) @@ -1347,7 +1349,6 @@ munmap_back:  out:  	perf_event_mmap(vma); -	mm->total_vm += len >> PAGE_SHIFT;  	vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);  	if (vm_flags & VM_LOCKED) {  		if (!mlock_vma_pages_range(vma, addr, addr + len)) @@ -1707,7 +1708,6 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns  		return -ENOMEM;  	/* Ok, everything looks good - let it rip */ -	mm->total_vm += grow;  	if (vma->vm_flags & VM_LOCKED)  		mm->locked_vm += grow;  	vm_stat_account(mm, vma->vm_flags, vma->vm_file, grow); @@ -1889,7 +1889,6 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)  		if (vma->vm_flags & VM_ACCOUNT)  			nr_accounted += nrpages; -		mm->total_vm -= nrpages;  		vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);  		vma = remove_vma(vma);  	} while (vma); @@ -2345,9 +2344,6 @@ int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma)  	     security_vm_enough_memory_mm(mm, vma_pages(vma)))  		return -ENOMEM; -	if (vma->vm_file && uprobe_mmap(vma)) -		return -EINVAL; -  	vma_link(mm, vma, prev, rb_link, rb_parent);  	return 0;  } @@ -2418,9 +2414,6 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,  			if (new_vma->vm_file) {  				get_file(new_vma->vm_file); -				if (uprobe_mmap(new_vma)) -					goto out_free_mempol; -  				if (vma->vm_flags & VM_EXECUTABLE)  					added_exe_file_vma(mm);  			}  |