[Devel] Re: [PATCH 1/1] don't call pre_restore_task twice

Matt Helsley matthltc at us.ibm.com
Thu Oct 8 11:49:30 PDT 2009


On Thu, Oct 08, 2009 at 09:12:58AM -0500, Serge E. Hallyn wrote:
> Quoting Matt Helsley (matthltc at us.ibm.com):
> > On Wed, Oct 07, 2009 at 06:47:50PM -0500, Serge E. Hallyn wrote:

<snip>

> > void post_restore_task()
> > {
> > 	sigprocmask(SIG_SETMASK, &current->checkpoint_data->blocked, NULL);
> > ...
> > }
> > 
> > then in do_restore_coord():
> > 
> > if (ctx->uflags & RESTART_TASKSELF) {
> >                 ret = pre_restore_task();
> >                 ckpt_debug("pre restore task: %d\n", ret);
> >                 if (ret < 0)
> >                         goto out;
> > ...
> >  out:
> >         if (ctx->uflags & RESTART_TASKSELF)
> >                 post_restore_task();
> > 
> > But if we got -ENOMEM from pre_restore_task() then I think there will be a
> > NULL dereference.
> 
> But the very first thing post_restore_task() does is
> 
> 	/* can happen if restart failed early */
> 	if (!current->checkpoint_data)
> 		return;

Ah, good. That's a fairly recent change so it wasn't in my git tree.  Looks 
like it was added Oct 3rd by:

commit: bb091acbf0a47bd61323322a4e0a784d1ee0c24f
"c/r: threads sync on restart (fix regression from commit afbe522c...)"

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




More information about the Devel mailing list