[Devel] [PATCH][usercr]: Ghost tasks must be detached

Sukadev Bhattiprolu sukadev at linux.vnet.ibm.com
Fri Dec 10 19:35:48 PST 2010


From: Sukadev Bhattiprolu <sukadev at linux.vnet.ibm.com>
Date: Fri, 10 Dec 2010 19:23:58 -0800
Subject: [PATCH 1/1] Ghost tasks must be detached

Ghost processes are created only to help restore orphaned sessions/pgrps.
As such once the session/pgrp is created the ghost must not send another
SIGCHLD to the parent but exit silently.  So create such tasks as
"detached".

See also:

https://lists.linux-foundation.org/pipermail/containers/2010-December/026076.html

Signed-off-by: Sukadev Bhattiprolu <sukadev at linux.vnet.ibm.com>
---
 restart.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/restart.c b/restart.c
index 9fb5e9f..d7ba26b 100644
--- a/restart.c
+++ b/restart.c
@@ -1744,6 +1744,13 @@ static pid_t ckpt_fork_child(struct ckpt_ctx *ctx, struct task *child)
 		flags |= CLONE_THREAD | CLONE_SIGHAND | CLONE_VM;
 	else if (child->flags & TASK_SIBLING)
 		flags |= CLONE_PARENT;
+	else if (child->flags & (TASK_GHOST|TASK_DEAD)) {
+		/* 
+		 * Ghosts must vanish silently (without signalling parent)
+		 * when they are done.
+		 */
+		flags = 0xFF;
+	}
 
 	memset(&clone_args, 0, sizeof(clone_args));
 	clone_args.nr_pids = 1;
-- 
1.6.0.4

_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list