[CRIU] [PATCH v2 5/5] compel: Add nspid, nssid and nspgid fields to struct seize_task_status

Andrei Vagin avagin at virtuozzo.com
Fri Apr 28 23:12:40 PDT 2017


On Fri, Apr 28, 2017 at 11:03:08PM -0700, Andrei Vagin wrote:
> On Tue, Apr 18, 2017 at 06:57:07PM +0300, Kirill Tkhai wrote:
> > Some users want them, so add these fields to the structure.
> > 
> > Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
> > ---
> >  compel/include/uapi/infect.h |    4 ++++
> >  compel/src/lib/infect.c      |    6 ++++++
> >  2 files changed, 10 insertions(+)
> > 
> > diff --git a/compel/include/uapi/infect.h b/compel/include/uapi/infect.h
> > index 7b681b0cb..4c6ab413d 100644
> > --- a/compel/include/uapi/infect.h
> > +++ b/compel/include/uapi/infect.h
> > @@ -21,6 +21,10 @@ struct seize_task_status {
> >  	int			seccomp_mode;
> >  	unsigned long long	shdpnd;
> >  	unsigned long long	sigpnd;
> > +	size_t			ns_levels;
> > +	uint32_t		*nspid;
> > +	uint32_t		*nspgid;
> > +	uint32_t		*nssid;
> 
> Here is the compel code and now we try to add fields which are
> not used in compel. It doesn't look good.

Maybe we need to declare a new structure in criu which will encapsulate
seize_task_status?

> 
> 
> >  	/* Add new members to the bottom and do not change existing */
> >  };
> >  
> > diff --git a/compel/src/lib/infect.c b/compel/src/lib/infect.c
> > index 9ade844cf..ab7558a81 100644
> > --- a/compel/src/lib/infect.c
> > +++ b/compel/src/lib/infect.c
> > @@ -190,11 +190,17 @@ static int skip_sigstop(int pid, int nr_signals)
> >  /* Init dynamically allocated fields in NULL and do not touch other */
> >  static void init_seize_task_status(struct seize_task_status *ss)
> >  {
> > +	ss->ns_levels = 0;
> > +	ss->nspid = ss->nspgid = ss->nssid = NULL;
> >  }
> >  
> >  /* Free dynamically allocated fields in compel_wait_task() and do not touch other */
> >  void compel_consume_seize_task_status(struct seize_task_status *ss)
> >  {
> > +	xfree(ss->nspid);
> > +	xfree(ss->nspgid);
> > +	xfree(ss->nssid);
> > +
> >  	init_seize_task_status(ss);
> >  }
> >  
> > 


More information about the CRIU mailing list