From d9ec409b3fbf43b9283cc09e90c7e70a694288d9 Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Mon, 13 Jan 2014 22:14:08 +0400 Subject: [PATCH] parasite: Always switch netns for transport socket If we're doing the pre-dump command we don't have the tasks' IDs collected, so we have the current_ns_mask uninitilized. Thus we create parasite transport socket in criu's namespace always and pre-dump of task, sitting in foreing net namespace may hang. From the "performance" point of view, it's easier to always create transport socket in victim's namespace, rahter than getting the current_ns_mask. Signed-off-by: Pavel Emelyanov --- parasite-syscall.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/parasite-syscall.c b/parasite-syscall.c index f3c6478b5..2b592acbf 100644 --- a/parasite-syscall.c +++ b/parasite-syscall.c @@ -445,12 +445,9 @@ static int prepare_tsock(struct parasite_ctl *ctl, pid_t pid, if (ssock == -1) { int rst = -1; - if (current_ns_mask & CLONE_NEWNET) { - pr_info("Switching to %d's net for tsock creation\n", pid); - - if (switch_ns(pid, &net_ns_desc, &rst)) - return -1; - } + pr_info("Switching to %d's net for tsock creation\n", pid); + if (switch_ns(pid, &net_ns_desc, &rst)) + return -1; ssock = socket(PF_UNIX, SOCK_SEQPACKET, 0); if (ssock < 0)