]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
xattr: switch to CLASS(fd)
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 30 Sep 2024 18:49:47 +0000 (14:49 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Nov 2024 18:29:31 +0000 (13:29 -0500)
Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/xattr.c

index 05ec7e7d9e87e219b2874ac80d858cbe3f856c71..0fc813cb005c6ae5e3cc724467885a7eeea045d3 100644 (file)
@@ -697,9 +697,9 @@ SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name,
        int error;
 
        CLASS(fd, f)(fd);
-       if (!fd_file(f))
-               return -EBADF;
 
+       if (fd_empty(f))
+               return -EBADF;
        audit_file(fd_file(f));
        error = setxattr_copy(name, &ctx);
        if (error)
@@ -809,16 +809,13 @@ SYSCALL_DEFINE4(lgetxattr, const char __user *, pathname,
 SYSCALL_DEFINE4(fgetxattr, int, fd, const char __user *, name,
                void __user *, value, size_t, size)
 {
-       struct fd f = fdget(fd);
-       ssize_t error = -EBADF;
+       CLASS(fd, f)(fd);
 
-       if (!fd_file(f))
-               return error;
+       if (fd_empty(f))
+               return -EBADF;
        audit_file(fd_file(f));
-       error = getxattr(file_mnt_idmap(fd_file(f)), fd_file(f)->f_path.dentry,
+       return getxattr(file_mnt_idmap(fd_file(f)), fd_file(f)->f_path.dentry,
                         name, value, size);
-       fdput(f);
-       return error;
 }
 
 /*
@@ -885,15 +882,12 @@ SYSCALL_DEFINE3(llistxattr, const char __user *, pathname, char __user *, list,
 
 SYSCALL_DEFINE3(flistxattr, int, fd, char __user *, list, size_t, size)
 {
-       struct fd f = fdget(fd);
-       ssize_t error = -EBADF;
+       CLASS(fd, f)(fd);
 
-       if (!fd_file(f))
-               return error;
+       if (fd_empty(f))
+               return -EBADF;
        audit_file(fd_file(f));
-       error = listxattr(fd_file(f)->f_path.dentry, list, size);
-       fdput(f);
-       return error;
+       return listxattr(fd_file(f)->f_path.dentry, list, size);
 }
 
 /*
@@ -950,12 +944,12 @@ SYSCALL_DEFINE2(lremovexattr, const char __user *, pathname,
 
 SYSCALL_DEFINE2(fremovexattr, int, fd, const char __user *, name)
 {
-       struct fd f = fdget(fd);
+       CLASS(fd, f)(fd);
        char kname[XATTR_NAME_MAX + 1];
-       int error = -EBADF;
+       int error;
 
-       if (!fd_file(f))
-               return error;
+       if (fd_empty(f))
+               return -EBADF;
        audit_file(fd_file(f));
 
        error = strncpy_from_user(kname, name, sizeof(kname));
@@ -970,7 +964,6 @@ SYSCALL_DEFINE2(fremovexattr, int, fd, const char __user *, name)
                                    fd_file(f)->f_path.dentry, kname);
                mnt_drop_write_file(fd_file(f));
        }
-       fdput(f);
        return error;
 }