Quoting Serge Hallyn (serge.hal...@ubuntu.com):
> Quoting Christian Brauner (christianvanbrau...@gmail.com):
> > On Mon, Sep 14, 2015 at 10:54:34PM +0000, Serge Hallyn wrote:
> > > Does it help if we simply define c->delete_with_snapshot_clones(), and 
> > > have
> > > src/lxc/destroy.c use that?  Then we can contain mod_all_rdeps to being a
> > > static function in src/lxc/lxccontainer.c  If not, remind me where else we
> > > would've needed the mod_all_rdeps?
> > 
> > lxc_destroy.c does not call mod_all_rdeps() directly at all. It reads in the
> > lxc_snapshots file from the container all at once and finds each container
> > listed in it and passes it to c->destroy(c). So we should be good regarding
> > locks on this side. Here is the relevant bit from lxc_destroy.c (omitting 
> > the
> > reading in part of the lxc_snapshots file):
> > 
> >             while ((lxcpath = strtok_r(!counter ? buf : NULL, "\n", 
> > &scratch))) {
> >                     if (!(lxcname = strtok_r(NULL, "\n", &scratch)))
> >                             break;
> >                     c1 = lxc_container_new(lxcname, lxcpath);
> >                     if (!c1)
> >                             goto next;
> >                     if (!c1->destroy(c1)) {
> >                             fprintf(stderr, "Destroying snapshot %s of %s 
> > failed\n", lxcname, my_args.name);
> >                             lxc_container_put(c1);
> >                             free(buf);
> >                             return -1;
> >                     }
> >                     lxc_container_put(c1);
> > next:
> >                     counter++;
> >             }
> > 
> > What I was worried about is the implementation in start.c:
> 
> Oh, right.
> 
> All right let's go back to your original patch.  I'd like to avoid,
> if we end up changing the file format again, having to chase down
> all the places where lxc_depends and rdepends are updated.  So let's
> come up with a small internal api for getting and updating those.
> We don't have to do that immediately, so I'll go ahead and re-review
> your patch (and presumably ack it).

Sigh.  The race.

Yeah, please just add a helper in lxcontainer.h which takes lxcname
and lxcpath and does the mod_all_rdeps.

thanks :)

-serge
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to