Merge branch 'work.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[sfrench/cifs-2.6.git] / fs / namespace.c
index d28d30b1304397eac7c92a4be3f60e02a9a536d7..81edb7e7ddfda8840e233fd2ead048b3d35377d0 100644 (file)
@@ -1675,8 +1675,6 @@ int ksys_umount(char __user *name, int flags)
        if (!(flags & UMOUNT_NOFOLLOW))
                lookup_flags |= LOOKUP_FOLLOW;
 
-       lookup_flags |= LOOKUP_NO_EVAL;
-
        retval = user_path_mountpoint_at(AT_FDCWD, name, lookup_flags, &path);
        if (retval)
                goto out;
@@ -3046,7 +3044,7 @@ long do_mount(const char *dev_name, const char __user *dir_name,
                return -EINVAL;
 
        /* ... and get the mountpoint */
-       retval = user_path(dir_name, &path);
+       retval = user_path_at(AT_FDCWD, dir_name, LOOKUP_FOLLOW, &path);
        if (retval)
                return retval;
 
@@ -3593,11 +3591,13 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
        if (!may_mount())
                return -EPERM;
 
-       error = user_path_dir(new_root, &new);
+       error = user_path_at(AT_FDCWD, new_root,
+                            LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &new);
        if (error)
                goto out0;
 
-       error = user_path_dir(put_old, &old);
+       error = user_path_at(AT_FDCWD, put_old,
+                            LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &old);
        if (error)
                goto out1;