[CRIU] [PATCH] ns: Use waitpid() in create_user_ns_hierarhy_fn()
Kirill Tkhai
ktkhai at virtuozzo.com
Wed Apr 5 02:43:34 PDT 2017
We're interested in just created child only. Other possibly guys
will be handled in appropriate places later (criu task may have
helpers-children).
Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
---
criu/namespaces.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/criu/namespaces.c b/criu/namespaces.c
index 031507d5a..3847bc40e 100644
--- a/criu/namespaces.c
+++ b/criu/namespaces.c
@@ -2354,16 +2354,15 @@ static int create_user_ns_hierarhy_fn(void *in_arg)
goto out;
}
futex_wait_while_lt(futex, NS__CREATED);
- /* Get child real pid */
- pid = arg->pid;
- if (prepare_userns(pid, child->user.e) < 0) {
+ /* Use child real pid */
+ if (prepare_userns(arg->pid, child->user.e) < 0) {
pr_err("Can't prepare child user_ns\n");
goto out;
}
futex_set_and_wake(futex, NS__MAPS_POPULATED);
errno = 0;
- if (wait(&status) < 0 || !WIFEXITED(status) || WEXITSTATUS(status)) {
+ if (waitpid(pid, &status, 0) < 0 || !WIFEXITED(status) || WEXITSTATUS(status)) {
pr_perror("Child process waiting: %d", status);
close_pid_proc();
goto out;
More information about the CRIU
mailing list