diff options
| author | Christian Brauner <brauner@kernel.org> | 2025-06-24 10:29:07 +0200 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-06-24 13:00:09 +0200 |
| commit | a0d8051cfd8145eb49dbd0c0c2f174d09da77796 (patch) | |
| tree | 4c1f36536f1c7ed2f1c1cdf501d6d5923785cec9 /fs | |
| parent | f7be8a333253cc319f5c6456b5cdab2a57b7351b (diff) | |
pidfs: add pidfs_root_path() helper
Allow to return the root of the global pidfs filesystem.
Link: https://lore.kernel.org/20250624-work-pidfs-fhandle-v2-4-d02a04858fe3@kernel.org
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/internal.h | 1 | ||||
| -rw-r--r-- | fs/pidfs.c | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/fs/internal.h b/fs/internal.h index 22ba066d1dba..ad256bccdc85 100644 --- a/fs/internal.h +++ b/fs/internal.h @@ -353,3 +353,4 @@ int anon_inode_getattr(struct mnt_idmap *idmap, const struct path *path, unsigned int query_flags); int anon_inode_setattr(struct mnt_idmap *idmap, struct dentry *dentry, struct iattr *attr); +void pidfs_get_root(struct path *path); diff --git a/fs/pidfs.c b/fs/pidfs.c index 47f5f9e0bdff..4fc7a7f4a3fe 100644 --- a/fs/pidfs.c +++ b/fs/pidfs.c @@ -31,6 +31,14 @@ static struct kmem_cache *pidfs_attr_cachep __ro_after_init; static struct kmem_cache *pidfs_xattr_cachep __ro_after_init; +static struct path pidfs_root_path = {}; + +void pidfs_get_root(struct path *path) +{ + *path = pidfs_root_path; + path_get(path); +} + /* * Stashes information that userspace needs to access even after the * process has been reaped. @@ -1068,4 +1076,7 @@ void __init pidfs_init(void) pidfs_mnt = kern_mount(&pidfs_type); if (IS_ERR(pidfs_mnt)) panic("Failed to mount pidfs pseudo filesystem"); + + pidfs_root_path.mnt = pidfs_mnt; + pidfs_root_path.dentry = pidfs_mnt->mnt_root; } |