diff --git a/criu/namespaces.c b/criu/namespaces.c index 7aa55e552..726cb7e63 100644 --- a/criu/namespaces.c +++ b/criu/namespaces.c @@ -1429,7 +1429,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) @@ -1657,7 +1657,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 4ae9e9c36..0bb7d87c2 100644 --- a/criu/net.c +++ b/criu/net.c @@ -1336,7 +1336,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; }