[CRIU] [PATCH v5 28/42] ns: Always start usernsd
Kirill Tkhai
ktkhai at virtuozzo.com
Fri May 5 09:17:32 PDT 2017
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 <ktkhai at virtuozzo.com>
---
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;
}
More information about the CRIU
mailing list