]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pidfs: use anon_inode_getattr()
authorChristian Brauner <brauner@kernel.org>
Mon, 7 Apr 2025 09:54:16 +0000 (11:54 +0200)
committerChristian Brauner <brauner@kernel.org>
Mon, 7 Apr 2025 14:18:56 +0000 (16:18 +0200)
So far pidfs did use it's own version. Just use the generic version. We
use our own wrappers because we're going to be implementing our own
retrieval properties soon.

Link: https://lore.kernel.org/20250407-work-anon_inode-v1-2-53a44c20d44e@kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/pidfs.c

index d64a4cbeb0dafaaa1d4a6947f2243ae5a40042ac..809c3393b6a3ca9972562693c38014290d4a0671 100644 (file)
@@ -572,33 +572,11 @@ static int pidfs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
        return -EOPNOTSUPP;
 }
 
-
-/*
- * User space expects pidfs inodes to have no file type in st_mode.
- *
- * In particular, 'lsof' has this legacy logic:
- *
- *     type = s->st_mode & S_IFMT;
- *     switch (type) {
- *       ...
- *     case 0:
- *             if (!strcmp(p, "anon_inode"))
- *                     Lf->ntype = Ntype = N_ANON_INODE;
- *
- * to detect our old anon_inode logic.
- *
- * Rather than mess with our internal sane inode data, just fix it
- * up here in getattr() by masking off the format bits.
- */
 static int pidfs_getattr(struct mnt_idmap *idmap, const struct path *path,
                         struct kstat *stat, u32 request_mask,
                         unsigned int query_flags)
 {
-       struct inode *inode = d_inode(path->dentry);
-
-       generic_fillattr(&nop_mnt_idmap, request_mask, inode, stat);
-       stat->mode &= ~S_IFMT;
-       return 0;
+       return anon_inode_getattr(idmap, path, stat, request_mask, query_flags);
 }
 
 static const struct inode_operations pidfs_inode_operations = {