pidfs: remove custom inode allocation
authorChristian Brauner <brauner@kernel.org>
Wed, 18 Jun 2025 20:53:41 +0000 (22:53 +0200)
committerChristian Brauner <brauner@kernel.org>
Thu, 19 Jun 2025 12:28:24 +0000 (14:28 +0200)
We don't need it anymore as persistent information is allocated lazily
and stashed in struct pid.

Link: https://lore.kernel.org/20250618-work-pidfs-persistent-v2-7-98f3456fd552@kernel.org
Reviewed-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/pidfs.c

index 72aac4f7b7d5c4f38fb7d9192b92a1ae4fda5242..c49c53d6ae519482c33df42a82f19798977b3992 100644 (file)
@@ -27,7 +27,6 @@
 
 #define PIDFS_PID_DEAD ERR_PTR(-ESRCH)
 
-static struct kmem_cache *pidfs_cachep __ro_after_init;
 static struct kmem_cache *pidfs_attr_cachep __ro_after_init;
 
 /*
@@ -45,15 +44,6 @@ struct pidfs_attr {
        struct pidfs_exit_info *exit_info;
 };
 
-struct pidfs_inode {
-       struct inode vfs_inode;
-};
-
-static inline struct pidfs_inode *pidfs_i(struct inode *inode)
-{
-       return container_of(inode, struct pidfs_inode, vfs_inode);
-}
-
 static struct rb_root pidfs_ino_tree = RB_ROOT;
 
 #if BITS_PER_LONG == 32
@@ -686,27 +676,9 @@ static void pidfs_evict_inode(struct inode *inode)
        put_pid(pid);
 }
 
-static struct inode *pidfs_alloc_inode(struct super_block *sb)
-{
-       struct pidfs_inode *pi;
-
-       pi = alloc_inode_sb(sb, pidfs_cachep, GFP_KERNEL);
-       if (!pi)
-               return NULL;
-
-       return &pi->vfs_inode;
-}
-
-static void pidfs_free_inode(struct inode *inode)
-{
-       kfree(pidfs_i(inode));
-}
-
 static const struct super_operations pidfs_sops = {
-       .alloc_inode    = pidfs_alloc_inode,
        .drop_inode     = generic_delete_inode,
        .evict_inode    = pidfs_evict_inode,
-       .free_inode     = pidfs_free_inode,
        .statfs         = simple_statfs,
 };
 
@@ -1067,19 +1039,8 @@ void pidfs_put_pid(struct pid *pid)
        dput(pid->stashed);
 }
 
-static void pidfs_inode_init_once(void *data)
-{
-       struct pidfs_inode *pi = data;
-
-       inode_init_once(&pi->vfs_inode);
-}
-
 void __init pidfs_init(void)
 {
-       pidfs_cachep = kmem_cache_create("pidfs_cache", sizeof(struct pidfs_inode), 0,
-                                        (SLAB_HWCACHE_ALIGN | SLAB_RECLAIM_ACCOUNT |
-                                         SLAB_ACCOUNT | SLAB_PANIC),
-                                        pidfs_inode_init_once);
        pidfs_attr_cachep = kmem_cache_create("pidfs_attr_cache", sizeof(struct pidfs_attr), 0,
                                         (SLAB_HWCACHE_ALIGN | SLAB_RECLAIM_ACCOUNT |
                                          SLAB_ACCOUNT | SLAB_PANIC), NULL);