2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-09-04 16:25:31 +00:00

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 <ktkhai@virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
This commit is contained in:
Kirill Tkhai
2018-01-10 17:02:44 +03:00
committed by Andrei Vagin
parent d076328ce0
commit 37b99ebe5b

View File

@@ -1051,9 +1051,6 @@ static int setup_newborn_fds(struct pstree_item *me)
return -1; return -1;
} }
if (log_init_by_pid(vpid(me)))
return -1;
return 0; return 0;
} }
@@ -1607,9 +1604,6 @@ static int restore_task_with_children(void *_arg)
if ( !(ca->clone_flags & CLONE_FILES)) if ( !(ca->clone_flags & CLONE_FILES))
close_safe(&ca->fd); close_safe(&ca->fd);
if (setup_newborn_fds(current))
goto err;
pid = getpid(); pid = getpid();
if (vpid(current) != pid) { if (vpid(current) != pid) {
pr_err("Pid %d do not match expected %d\n", pid, vpid(current)); 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; goto err;
} }
if (log_init_by_pid(vpid(current)))
return -1;
if (current->parent == NULL) { if (current->parent == NULL) {
/* /*
* The root task has to be in its namespaces before executing * 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; goto err;
} }
if (setup_newborn_fds(current))
goto err;
if (restore_task_mnt_ns(current)) if (restore_task_mnt_ns(current))
goto err; goto err;