2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-30 13:58:34 +00:00

restore: unlock network before disabling repair mode on sockets (v2)

Window probe is sent during disabling repair mode on a socket, so
network must be unlocked in this moment.

https://bugzilla.openvz.org/show_bug.cgi?id=2670

v2: don't fail after unlocking network
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
Andrey Vagin
2013-07-15 18:14:12 +04:00
committed by Pavel Emelyanov
parent 64c37b72ff
commit 81e11b44de

View File

@@ -1304,12 +1304,10 @@ static int restore_root_task(struct pstree_item *init)
goto out;
pr_info("Wait until all tasks are restored\n");
ret = restore_switch_stage(CR_STATE_RESTORE_CREDS);
ret = restore_wait_inprogress_tasks();
if (ret < 0)
goto out;
futex_wait_until(&task_entries->nr_in_progress, 0);
/* Restore SIGCHLD here to skip SIGCHLD from a network sctip */
ret = sigaction(SIGCHLD, &old_act, NULL);
if (ret < 0) {
@@ -1317,7 +1315,18 @@ static int restore_root_task(struct pstree_item *init)
goto out;
}
/* Unlock network before disabling repair mode on sockets */
network_unlock();
/*
* -------------------------------------------------------------
* Below this line nothing can fail, because network is unlocked
*/
__restore_switch_stage(CR_STATE_RESTORE_CREDS);
futex_wait_until(&task_entries->nr_in_progress, 0);
out:
if (ret < 0) {
struct pstree_item *pi;