diff options
author | Yordan Karadzhov (VMware) <y.karadz@gmail.com> | 2021-11-04 09:26:35 +0200 |
---|---|---|
committer | Yordan Karadzhov (VMware) <y.karadz@gmail.com> | 2021-11-05 13:53:13 +0200 |
commit | a58cf047b06157ad6411e3964457c55e690b69a8 (patch) | |
tree | 5a0d90f8025f4a004777764376f4c165deacd7b4 | |
parent | 218b0d61a5a05695e6f25692271fbe8606d9c6a1 (diff) | |
download | linux-master.tar.gz |
The new file can be used to get the list of PIDs of all tasks contained
in a particular UTS namespace.
Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
-rw-r--r-- | fs/namespacefs/inode.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/fs/namespacefs/inode.c b/fs/namespacefs/inode.c index dc96a22f58c196..978ab366836612 100644 --- a/fs/namespacefs/inode.c +++ b/fs/namespacefs/inode.c @@ -354,12 +354,26 @@ int namespacefs_create_uts_ns_dir(struct uts_namespace *ns) dentry = namespacefs_create_file("uname", ns->ns.dentry, &uts_fops, &ns->name); - if (IS_ERR(dentry)) { - dput(ns->ns.dentry); - return PTR_ERR(dentry); - } + if (IS_ERR(dentry)) + goto error; + dentry = namespacefs_create_file("tasks", ns->ns.dentry, + &tasks_fops, &ns->ns.idr); + if (IS_ERR(dentry)) + goto error; + + idr_init(&ns->ns.idr); return 0; + +error: + namespacefs_remove_dir(ns->ns.dentry); + return PTR_ERR(dentry); +} + +void namespacefs_remove_uts_dir(struct uts_namespace *ns) +{ + idr_destroy(&ns->ns.idr); + namespacefs_remove_dir(ns->ns.dentry); } void namespacefs_remove_uts_ns_dir(struct uts_namespace *ns) |