[CRIU] [PATCH 06/15] cr-restore: restore root sid before mount namespace

Stanislav Kinsburskiy skinsbursky at virtuozzo.com
Thu Dec 3 05:29:12 PST 2015


This is a precursor patch for AutoFS mount restore.
To restore AutoFS-nested mount points, we have to created target dentries.
To be able to do so, the criut init have to be process group leader before
AutoFS mount is called, while it's not.
Restoring root sid make process group leader.
Restoring actual pgrp before sid breaks sid restoring.

Signed-off-by: Stanislav Kinsburskiy <skinsbursky at virtuozzo.com>
---
 cr-restore.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/cr-restore.c b/cr-restore.c
index 1c0c641..8f3d28f 100644
--- a/cr-restore.c
+++ b/cr-restore.c
@@ -1441,7 +1441,10 @@ static int create_children_and_session(void)
 			return ret;
 	}
 
-	restore_sid();
+	if (getpid() == 1)
+		pr_info("Skipping restore_sid() for init\n");
+	else
+		restore_sid();
 
 	pr_info("Restoring children in our session:\n");
 	list_for_each_entry(child, &current->children, sibling) {
@@ -1524,6 +1527,9 @@ static int restore_task_with_children(void *_arg)
 		if (restore_finish_stage(CR_STATE_RESTORE_NS) < 0)
 			goto err;
 
+		pr_info("Calling restore_sid() for init\n");
+		restore_sid();
+
 		/*
 		 * We need non /proc proc mount for restoring pid and mount
 		 * namespaces and do not care for the rest of the cases.



More information about the CRIU mailing list