From 3ba6ed7fcd8b8be71d50f767c5c823692d1dcec8 Mon Sep 17 00:00:00 2001 From: Kirill Tkhai Date: Tue, 16 May 2017 19:26:30 +0300 Subject: [PATCH] pid_ns: Pass namespace init task to do_create_pid_ns_helper() This will be used in next patch. Signed-off-by: Kirill Tkhai Signed-off-by: Andrei Vagin --- criu/namespaces.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/criu/namespaces.c b/criu/namespaces.c index f8908612e..748794d29 100644 --- a/criu/namespaces.c +++ b/criu/namespaces.c @@ -2628,6 +2628,7 @@ static int pid_ns_helper(struct ns_id *ns, int sk) static int do_create_pid_ns_helper(void *arg, int sk, pid_t unused_pid) { int pid_ns_fd, mnt_ns_fd, fd, i, lock_fd, transport_fd; + struct pstree_item *ns_reaper; struct ns_id *ns, *tmp; struct pid *pid; pid_t child; @@ -2637,7 +2638,8 @@ static int do_create_pid_ns_helper(void *arg, int sk, pid_t unused_pid) pr_perror("Can't open pid ns"); goto err; } - ns = *(struct ns_id **)arg; + ns_reaper = *(struct pstree_item **)arg; + ns = lookup_ns_by_id(ns_reaper->ids->pid_ns_id, &pid_ns_desc); fd = fdstore_get(ns->pid.nsfd_id); if (fd < 0) { @@ -2753,7 +2755,7 @@ int create_pid_ns_helper(struct ns_id *ns) if (sk < 0) return -1; - if (userns_call(do_create_pid_ns_helper, 0, &ns, sizeof(ns), sk) < 0) { + if (userns_call(do_create_pid_ns_helper, 0, ¤t, sizeof(current), sk) < 0) { pr_err("Can't create pid_ns helper\n"); close(sk); return -1;