[CRIU] [PATCH 2/2] restore: unlock network before disabling repair mode on sockets (v2)
Andrey Vagin
avagin at openvz.org
Mon Jul 15 10:14:12 EDT 2013
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 at openvz.org>
---
cr-restore.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/cr-restore.c b/cr-restore.c
index 14b496c..2ca444b 100644
--- a/cr-restore.c
+++ b/cr-restore.c
@@ -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;
--
1.8.3.1
More information about the CRIU
mailing list