From 37b99ebe5bc65bf48218d8bfe079bc59bc0a39a9 Mon Sep 17 00:00:00 2001 From: Kirill Tkhai Date: Wed, 10 Jan 2018 17:02:44 +0300 Subject: [PATCH] files: Do setup_newborn_fds() later This patch makes the call of service fds relocation after root_prepare_shared()->prepare_fd_pid(). Next patches will make service_fd_base depend on task's max fd used, and for root_item we need to read all fles to know the maximum of them. Signed-off-by: Kirill Tkhai Signed-off-by: Andrei Vagin --- criu/cr-restore.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/criu/cr-restore.c b/criu/cr-restore.c index 9717b17d1..e08e6ed6f 100644 --- a/criu/cr-restore.c +++ b/criu/cr-restore.c @@ -1051,9 +1051,6 @@ static int setup_newborn_fds(struct pstree_item *me) return -1; } - if (log_init_by_pid(vpid(me))) - return -1; - return 0; } @@ -1607,9 +1604,6 @@ static int restore_task_with_children(void *_arg) if ( !(ca->clone_flags & CLONE_FILES)) close_safe(&ca->fd); - if (setup_newborn_fds(current)) - goto err; - pid = getpid(); if (vpid(current) != pid) { pr_err("Pid %d do not match expected %d\n", pid, vpid(current)); @@ -1617,6 +1611,9 @@ static int restore_task_with_children(void *_arg) goto err; } + if (log_init_by_pid(vpid(current))) + return -1; + if (current->parent == NULL) { /* * The root task has to be in its namespaces before executing @@ -1683,6 +1680,9 @@ static int restore_task_with_children(void *_arg) goto err; } + if (setup_newborn_fds(current)) + goto err; + if (restore_task_mnt_ns(current)) goto err;