diff options
Diffstat (limited to 'mm/mremap.c')
| -rw-r--r-- | mm/mremap.c | 26 | 
1 files changed, 5 insertions, 21 deletions
diff --git a/mm/mremap.c b/mm/mremap.c index db8d983b5a7..21fed202dda 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -371,10 +371,6 @@ static unsigned long mremap_to(unsigned long addr,  	if ((addr <= new_addr) && (addr+old_len) > new_addr)  		goto out; -	ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1); -	if (ret) -		goto out; -  	ret = do_munmap(mm, new_addr, new_len);  	if (ret)  		goto out; @@ -432,15 +428,17 @@ static int vma_expandable(struct vm_area_struct *vma, unsigned long delta)   * MREMAP_FIXED option added 5-Dec-1999 by Benjamin LaHaise   * This option implies MREMAP_MAYMOVE.   */ -unsigned long do_mremap(unsigned long addr, -	unsigned long old_len, unsigned long new_len, -	unsigned long flags, unsigned long new_addr) +SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len, +		unsigned long, new_len, unsigned long, flags, +		unsigned long, new_addr)  {  	struct mm_struct *mm = current->mm;  	struct vm_area_struct *vma;  	unsigned long ret = -EINVAL;  	unsigned long charged = 0; +	down_write(¤t->mm->mmap_sem); +  	if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))  		goto out; @@ -530,25 +528,11 @@ unsigned long do_mremap(unsigned long addr,  			goto out;  		} -		ret = security_file_mmap(NULL, 0, 0, 0, new_addr, 1); -		if (ret) -			goto out;  		ret = move_vma(vma, addr, old_len, new_len, new_addr);  	}  out:  	if (ret & ~PAGE_MASK)  		vm_unacct_memory(charged); -	return ret; -} - -SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len, -		unsigned long, new_len, unsigned long, flags, -		unsigned long, new_addr) -{ -	unsigned long ret; - -	down_write(¤t->mm->mmap_sem); -	ret = do_mremap(addr, old_len, new_len, flags, new_addr);  	up_write(¤t->mm->mmap_sem);  	return ret;  }  |