2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-31 22:35:33 +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;
}
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;