diff options
Diffstat (limited to 'kernel/sys.c')
| -rw-r--r-- | kernel/sys.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/sys.c b/kernel/sys.c index 2e18d33ca77..e10566bee39 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -1794,14 +1794,14 @@ SYSCALL_DEFINE1(umask, int, mask)  static int prctl_set_mm_exe_file(struct mm_struct *mm, unsigned int fd)  {  	struct fd exe; -	struct dentry *dentry; +	struct inode *inode;  	int err;  	exe = fdget(fd);  	if (!exe.file)  		return -EBADF; -	dentry = exe.file->f_path.dentry; +	inode = file_inode(exe.file);  	/*  	 * Because the original mm->exe_file points to executable file, make @@ -1809,11 +1809,11 @@ static int prctl_set_mm_exe_file(struct mm_struct *mm, unsigned int fd)  	 * overall picture.  	 */  	err = -EACCES; -	if (!S_ISREG(dentry->d_inode->i_mode)	|| +	if (!S_ISREG(inode->i_mode)	||  	    exe.file->f_path.mnt->mnt_flags & MNT_NOEXEC)  		goto exit; -	err = inode_permission(dentry->d_inode, MAY_EXEC); +	err = inode_permission(inode, MAY_EXEC);  	if (err)  		goto exit;  |