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