[CRIU] [PATCH 01/10] namespaces: add switch_ns_by_fd
Andrei Vagin
avagin at openvz.org
Sun Feb 12 21:49:11 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 cbbc154..42f2eb8 100644
--- a/criu/mount.c
+++ b/criu/mount.c
@@ -2835,15 +2835,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;
}
@@ -2854,11 +2846,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