[lxc-devel] [PATCH v2] Cleanup parts of lxc-destroy

Christian Brauner christianvanbrauner at gmail.com
Wed Sep 30 16:19:34 UTC 2015


Sorry, my teachers pounded a violent hatred for gotos for non-cleanup purposes
into me. Thanks. :)

On Wed, Sep 30, 2015 at 04:13:12PM +0000, Serge Hallyn wrote:
> Quoting Christian Brauner (christianvanbrauner at gmail.com):
> > A bit of pedantry usually doesn't hurt. The code should be easier to follow now
> > and avoids some repetitions.
> > 
> > Signed-off-by: Christian Brauner <christianvanbrauner at gmail.com>
> 
> Note I still don't really feel the first hunk is an improvement
> in readability, but at this point it's subjective, so I won't
> object :)
> 
> Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>
> 
> thanks,
> -serge
> 
> > ---
> >  src/lxc/lxc_destroy.c | 27 ++++++++++++++-------------
> >  1 file changed, 14 insertions(+), 13 deletions(-)
> > 
> > diff --git a/src/lxc/lxc_destroy.c b/src/lxc/lxc_destroy.c
> > index f1830fd..ab1029f 100644
> > --- a/src/lxc/lxc_destroy.c
> > +++ b/src/lxc/lxc_destroy.c
> > @@ -141,6 +141,7 @@ static int do_destroy_with_snapshots(struct lxc_container *c)
> >  {
> >  	struct lxc_container *c1;
> >  	struct stat fbuf;
> > +	bool bret = false;
> >  	char path[MAXPATHLEN];
> >  	char *buf = NULL;
> >  	char *lxcpath = NULL;
> > @@ -184,8 +185,10 @@ static int do_destroy_with_snapshots(struct lxc_container *c)
> >  			if (!(lxcname = strtok_r(NULL, "\n", &scratch)))
> >  				break;
> >  			c1 = lxc_container_new(lxcname, lxcpath);
> > -			if (!c1)
> > -				goto next;
> > +			if (!c1) {
> > +				counter++;
> > +				continue;
> > +			}
> >  			if (!c1->destroy(c1)) {
> >  				fprintf(stderr, "Destroying snapshot %s of %s failed\n", lxcname, my_args.name);
> >  				lxc_container_put(c1);
> > @@ -193,7 +196,6 @@ static int do_destroy_with_snapshots(struct lxc_container *c)
> >  				return -1;
> >  			}
> >  			lxc_container_put(c1);
> > -next:
> >  			counter++;
> >  		}
> >  		free(buf);
> > @@ -203,16 +205,15 @@ next:
> >  	ret = snprintf(path, MAXPATHLEN, "%s/%s/snaps", c->config_path, c->name);
> >  	if (ret < 0 || ret >= MAXPATHLEN)
> >  		return -1;
> > -	if (dir_exists(path)) {
> > -		if (!c->destroy_with_snapshots(c)) {
> > -			fprintf(stderr, "Destroying %s failed\n", my_args.name);
> > -			return -1;
> > -		}
> > -	} else {
> > -		if (!c->destroy(c)) {
> > -			fprintf(stderr, "Destroying %s failed\n", my_args.name);
> > -			return -1;
> > -		}
> > +
> > +	if (dir_exists(path))
> > +		bret = c->destroy_with_snapshots(c);
> > +	else
> > +		bret = c->destroy(c);
> > +
> > +	if (!bret) {
> > +		fprintf(stderr, "Destroying %s failed\n", my_args.name);
> > +		return -1;
> >  	}
> >  
> >  	printf("Destroyed container %s including snapshots \n", my_args.name);
> > -- 
> > 2.6.0
> > 
> 
> 
> 
> > _______________________________________________
> > lxc-devel mailing list
> > lxc-devel at lists.linuxcontainers.org
> > http://lists.linuxcontainers.org/listinfo/lxc-devel
> 
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel


More information about the lxc-devel mailing list