On Wed, 21 Aug 2013 10:47:20 -0500
Serge Hallyn <serge.hal...@ubuntu.com> wrote:

> Quoting Dwight Engen (dwight.en...@oracle.com):
> > On Tue, 20 Aug 2013 14:15:26 -0500
> > Serge Hallyn <serge.hal...@ubuntu.com> wrote:
> > 
> > [...]
> > > +static bool mod_rdep(struct lxc_container *c, bool inc)
> > > +{
> > > + char path[MAXPATHLEN];
> > > + int ret, v = 0;
> > > + FILE *f;
> > > + bool bret = false;
> > > +
> > > + if (container_disk_lock(c))
> > > +         return false;
> > > + ret = snprintf(path, MAXPATHLEN, "%s/%s/lxc_snapshots",
> > > c->config_path,
> > > +                 c->name);
> > > + if (ret < 0 || ret > MAXPATHLEN)
> > > +         goto out;
> > > + f = fopen(path, "r");
> > > + if (f) {
> > > +         ret = fscanf(f, "%d", &v);
> > > +         fclose(f);
> > > +         if (ret != 1) {
> > > +                 ERROR("Corrupted file %s", path);
> > > +                 goto out;
> > > +         }
> > > + }
> > > + v += inc ? 1 : -1;
> > > + f = fopen(path, "w");
> > > + if (!f)
> > > +         goto out;
> > > + fprintf(f, "%d\n", v);
> > > + fclose(f);
> > 
> > Should we check the return value of fclose()? ie. it could fail
> > ENOSPC?
> 
> I had thought about it, but note that the dependency tracking is
> best-effort.  I don't want an lxc-clone to fail bc we couldn't
> mark the dependency.  Maybe I'm wrong on that, and I should.
> What do you think?

Ahh okay. Well I just saw that everything else in the routine was
checking for errors and failing so it just looked like the fclose() was
missed. I think errors from fclose() are a lot less likely than not
being able to open the file in the first place so I guess we can
ignore them.

This is only done for overlayfs right? And if something does go wrong
it just means refcounts are off? If we fail to mark the dependency but
let the clone go through, then the worst that can happen is the
parent gets removed at some later date and the cloned container fails to
work then?

------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to