[CRIU] [PATCH v4 15/19] files: Do setup_newborn_fds() later
Kirill Tkhai
ktkhai at virtuozzo.com
Wed Jan 10 17:02:44 MSK 2018
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 <ktkhai at virtuozzo.com>
---
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 426910f2f..c6c9a7daf 100644
--- a/criu/cr-restore.c
+++ b/criu/cr-restore.c
@@ -1205,9 +1205,6 @@ static int setup_newborn_fds(struct pstree_item *me)
return -1;
}
- if (log_init_by_pid(vpid(me)))
- return -1;
-
return 0;
}
@@ -1815,9 +1812,6 @@ static int restore_task_with_children(void *_arg)
if (current->pid->real < 0)
goto err;
- if (setup_newborn_fds(current))
- goto err;
-
pid = getpid();
if (last_level_pid(current->pid) != pid) {
pr_err("Pid %d do not match expected %d (task %d)\n",
@@ -1826,6 +1820,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
@@ -1895,6 +1892,9 @@ static int restore_task_with_children(void *_arg)
goto err;
}
+ if (setup_newborn_fds(current))
+ goto err;
+
if ((ca->clone_flags & CLONE_NEWPID) && setup_current_pid_ns())
goto err;
More information about the CRIU
mailing list