Messages in this thread | | | Subject | [PATCH v3 0/2] Expose task pid_ns_for_children to userspace | From | Kirill Tkhai <> | Date | Wed, 3 May 2017 13:32:14 +0300 |
| |
pid_ns_for_children set by a task is known only to the task itself, and it's impossible to identify it from outside.
It's a big problem for checkpoint/restore software like CRIU, because it can't correctly handle tasks, that do setns(CLONE_NEWPID) in proccess of their work. If they have a custom pid_ns_for_children before dump, they must have the same ns after restore. Otherwise, restored task bumped into enviroment it does not expect.
This patchset solves the problem. It exposes pid_ns_for_children to ns directory in standard way with the name "pid_for_children":
~# ls /proc/5531/ns -l | grep pid lrwxrwxrwx 1 root root 0 Jan 14 16:38 pid -> pid:[4026531836] lrwxrwxrwx 1 root root 0 Jan 14 16:38 pid_for_children -> pid:[4026532286]
v3: Check child_reaper without tasklist_lock as we are only interested in the fact it's not zero, and not in a specific value.
v2: Do not allow to take a pid namespace, if there is no child reaper created. This prevents race between creation of the child reaper and other tasks.
---
Kirill Tkhai (2): ns: Allow ns_entries to have custom symlink content pidns: Expose task pid_ns_for_children to userspace
fs/nsfs.c | 4 +++- fs/proc/namespaces.c | 1 + include/linux/proc_ns.h | 2 ++ kernel/pid_namespace.c | 28 ++++++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-)
-- Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
| |