[CRIU] [PATCH 01/11] namespaces: add switch_ns_by_fd

Andrei Vagin avagin at openvz.org
Wed Feb 1 16:04:21 PST 2017


From: Andrei Vagin <avagin at virtuozzo.com>

It's like switch_ns, but it gets a namespace file descriptor instead of pid.

Signed-off-by: Andrei Vagin <avagin at virtuozzo.com>
---
 criu/mount.c | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/criu/mount.c b/criu/mount.c
index 4ba6cc2..190b61e 100644
--- a/criu/mount.c
+++ b/criu/mount.c
@@ -2840,15 +2840,7 @@ int depopulate_roots_yard(int mntns_fd, bool only_ghosts)
 		return -1;
 	}
 
-	old_ns = open_proc(PROC_SELF, "ns/mnt");
-	if (old_ns < 0) {
-		pr_perror("`- Can't keep old ns");
-		close(old_cwd);
-		return -1;
-	}
-	if (setns(mntns_fd, CLONE_NEWNS) < 0) {
-		pr_perror("`- Can't switch");
-		close(old_ns);
+	if (switch_ns_by_fd(mntns_fd, &mnt_ns_desc, &old_ns)) {
 		close(old_cwd);
 		return -1;
 	}
@@ -2859,11 +2851,8 @@ int depopulate_roots_yard(int mntns_fd, bool only_ghosts)
 	if (__depopulate_roots_yard())
 		ret = -1;
 
-	if (setns(old_ns, CLONE_NEWNS) < 0) {
-		pr_perror("Fail to switch back!");
+	if (restore_ns(old_ns, &mnt_ns_desc))
 		ret = -1;
-	}
-	close(old_ns);
 
 	if (fchdir(old_cwd)) {
 		pr_perror("Unable to restore cwd");
-- 
2.7.4



More information about the CRIU mailing list