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

Oren Laadan orenl at cs.columbia.edu
Mon Jan 10 17:51:06 PST 2011


Applied to user-cr.

Thanks,

Oren.

On 12/10/2010 10:35 PM, Sukadev Bhattiprolu wrote:
> 
> 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;


More information about the Containers mailing list