]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mount_setattr(2): don't mess with LOOKUP_EMPTY
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 20 Sep 2024 18:08:37 +0000 (14:08 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 16 Jan 2026 17:52:03 +0000 (12:52 -0500)
just use CLASS(filename_uflags) + filename_lookup()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namespace.c

index 9d0d8ed162647b7378e6a3dba75ae1f76e7aee0d..d632180f9b1abb89f2d994069a2217952ffd221b 100644 (file)
@@ -4978,8 +4978,6 @@ SYSCALL_DEFINE5(mount_setattr, int, dfd, const char __user *, path,
                lookup_flags &= ~LOOKUP_AUTOMOUNT;
        if (flags & AT_SYMLINK_NOFOLLOW)
                lookup_flags &= ~LOOKUP_FOLLOW;
-       if (flags & AT_EMPTY_PATH)
-               lookup_flags |= LOOKUP_EMPTY;
 
        kattr = (struct mount_kattr) {
                .lookup_flags   = lookup_flags,
@@ -4992,7 +4990,8 @@ SYSCALL_DEFINE5(mount_setattr, int, dfd, const char __user *, path,
        if (err <= 0)
                return err;
 
-       err = user_path_at(dfd, path, kattr.lookup_flags, &target);
+       CLASS(filename_uflags, name)(path, flags);
+       err = filename_lookup(dfd, name, kattr.lookup_flags, &target, NULL);
        if (!err) {
                err = do_mount_setattr(&target, &kattr);
                path_put(&target);