From patchwork Thu May 4 16:09:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v4,27/41] ns: Always start usernsd From: Kirill Tkhai X-Patchwork-Id: 5013 Message-Id: <149391417821.11711.6102575214243670664.stgit@localhost.localdomain> To: , , , , Date: Thu, 4 May 2017 19:09:38 +0300 We need a parent for pid_ns helpers. This can't be criu task, as this introduces circular dependencies. So choose usernsd for that, as we create it almost always. Signed-off-by: Kirill Tkhai --- criu/namespaces.c | 4 ++-- criu/net.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/criu/namespaces.c b/criu/namespaces.c index 11b33a0e1..4dd2377fc 100644 --- a/criu/namespaces.c +++ b/criu/namespaces.c @@ -1423,7 +1423,7 @@ struct unsc_msg { char c[CMSG_SPACE(sizeof(struct ucred)) + CMSG_SPACE(sizeof(int))]; }; -static int usernsd_pid; +int usernsd_pid; static inline void unsc_msg_init(struct unsc_msg *m, uns_call_t *c, int *x, void *arg, size_t asize, int fd) @@ -1651,7 +1651,7 @@ static int start_usernsd(void) int sk[2]; int one = 1; - if (!(root_ns_mask & CLONE_NEWUSER)) + if (!(root_ns_mask & (CLONE_NEWUSER|CLONE_NEWPID))) return 0; /* diff --git a/criu/net.c b/criu/net.c index 8b9a10b46..e91d1e867 100644 --- a/criu/net.c +++ b/criu/net.c @@ -1185,7 +1185,7 @@ static int userns_restore_one_link(void *arg, int fd, pid_t pid) struct newlink_req *req = arg; int ns_fd = get_service_fd(NS_FD_OFF), rst = -1; - if (!(root_ns_mask & CLONE_NEWUSER)) { + if (ns_fd > 0) { if (switch_ns_by_fd(ns_fd, &net_ns_desc, &rst)) return -1; }