]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
proc_fd_getattr(): don't bother with S_ISDIR() check
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 15 Jun 2025 00:33:21 +0000 (01:33 +0100)
committerChristian Brauner <brauner@kernel.org>
Mon, 16 Jun 2025 14:21:07 +0000 (16:21 +0200)
that thing is callable only as ->i_op->getattr() instance and only
for directory inodes (/proc/*/fd and /proc/*/task/*/fd)

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Link: https://lore.kernel.org/20250615003321.GC3011112@ZenIV
Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/proc/fd.c

index 37aa778d1af7bffa8ccbb55ead82dcad82c0dccf..9eeccff49b2abf57d766ce17fe47070c379ed2c8 100644 (file)
@@ -352,18 +352,9 @@ static int proc_fd_getattr(struct mnt_idmap *idmap,
                        u32 request_mask, unsigned int query_flags)
 {
        struct inode *inode = d_inode(path->dentry);
-       int rv = 0;
 
        generic_fillattr(&nop_mnt_idmap, request_mask, inode, stat);
-
-       /* If it's a directory, put the number of open fds there */
-       if (S_ISDIR(inode->i_mode)) {
-               rv = proc_readfd_count(inode, &stat->size);
-               if (rv < 0)
-                       return rv;
-       }
-
-       return rv;
+       return proc_readfd_count(inode, &stat->size);
 }
 
 const struct inode_operations proc_fd_inode_operations = {