From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Smith Subject: Re: multi-threaded app fails to restart Date: Mon, 26 Jul 2010 10:11:24 -0700 Message-ID: <8739v6tbgj.fsf@caffeine.danplanet.com> References: <1279569285.25071.98.camel@localhost> <4C4516DD.1000809@cs.columbia.edu> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: (Oren Laadan's message of "Mon\, 26 Jul 2010 07\:18\:34 -0400 \(EDT\)") List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Oren Laadan Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org List-Id: containers.vger.kernel.org OL> diff --git a/kernel/checkpoint/sys.c b/kernel/checkpoint/sys.c OL> index 171c867..c5517c2 100644 OL> --- a/kernel/checkpoint/sys.c OL> +++ b/kernel/checkpoint/sys.c OL> @@ -625,8 +625,11 @@ int walk_task_subtree(struct task_struct *root, OL> } OL> /* if we arrive at root again -- done */ OL> - if (task == root) OL> - break; OL> + if (task == root) { OL> + /* if not last thread - proceed with thread */ OL> + task = root = next_thread(task); OL> + if (thread_group_leader(task)) OL> + break; } // Need to close this block Otherwise it seems to work for me: Tested-by: Dan Smith -- Dan Smith IBM Linux Technology Center email: danms-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org