[CRIU] [PATCH v4 26/31] ns: Set target user_ns after net_ns is set

Kirill Tkhai ktkhai at virtuozzo.com
Wed Feb 22 03:34:23 PST 2017


Restore task's user_ns, and keep in mind we born in parent's user_ns

Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
---
 criu/cr-restore.c |    8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/criu/cr-restore.c b/criu/cr-restore.c
index f451effea..8665c8c37 100644
--- a/criu/cr-restore.c
+++ b/criu/cr-restore.c
@@ -724,6 +724,9 @@ static int restore_one_alive_task(int pid, CoreEntry *core)
 	if (restore_task_net_ns(current))
 		return -1;
 
+	if (current->ids && set_user_ns(current->ids->user_ns_id) < 0)
+		return -1;
+
 	if (setup_uffd(pid, ta))
 		return -1;
 
@@ -975,6 +978,11 @@ static inline int fork_with_pid(struct pstree_item *item)
 	int ret = -1;
 	pid_t pid = vpid(item);
 
+	if (item != root_item)
+		item->user_ns = current->user_ns;
+	else
+		item->user_ns = root_user_ns;
+
 	if (item->pid->state != TASK_HELPER) {
 		if (open_core(pid, &ca.core))
 			return -1;



More information about the CRIU mailing list