new helper: file_inode(file)
[linux-2.6-block.git] / kernel / sys.c
index 265b37690421897afe6f133953e21c8bbf5632ad..e3932ea50ec8c28ca279caa177b5e599bf32e906 100644 (file)
@@ -1792,14 +1792,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
@@ -1807,11 +1807,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;