[CRIU] [PATCH 01/10] namespaces: add switch_ns_by_fd
Pavel Emelyanov
xemul at virtuozzo.com
Mon Feb 13 04:58:46 PST 2017
On 02/13/2017 08:49 AM, Andrei Vagin wrote:
> From: Andrei Vagin <avagin at virtuozzo.com>
>
> It's like switch_ns, but it gets a namespace file descriptor instead of pid.
I've already wrote this comment, but ...
It looks like the switch_ns_by_fd is already in the code, so this
patch does something different rather than adding this routine :)
What should I write as subject/body when merging this patch?
-- Pavel
> 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");
>
More information about the CRIU
mailing list