Switch from file_permission() to vfs_permission() in do_path_lookup() by filling in the vfs_lookup in nd slightly earlier. Signed-off-by: Andreas Gruenbacher --- fs/namei.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) --- a/fs/namei.c +++ b/fs/namei.c @@ -1133,25 +1133,23 @@ static int fastcall do_path_lookup(int d nd->lookup.path.dentry = dget(fs->pwd); read_unlock(&fs->lock); } else { - struct dentry *dentry; - file = fget_light(dfd, &fput_needed); retval = -EBADF; if (!file) goto out_fail; - dentry = file->f_path.dentry; + nd->lookup.path = file->f_path; retval = -ENOTDIR; - if (!S_ISDIR(dentry->d_inode->i_mode)) + if (!S_ISDIR(nd->lookup.path.dentry->d_inode->i_mode)) goto fput_fail; - retval = file_permission(file, MAY_EXEC); + retval = vfs_permission(&nd->lookup, MAY_EXEC); if (retval) goto fput_fail; - nd->lookup.path.mnt = mntget(file->f_path.mnt); - nd->lookup.path.dentry = dget(dentry); + mntget(nd->lookup.path.mnt); + dget(nd->lookup.path.dentry); fput_light(file, fput_needed); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/