On Thu, Dec 19, 2013 at 03:18:24PM -0600, Serge Hallyn wrote: > In particular, if it's already 1, and we can't change it, we currently > fail out. That's silly. > > I was going to just always continue, but if clone_children is not 1, > then the container *will* fail to start later on, so I'd rather stop > earlier on so the original cause doesn't get lost in the noise. > > Signed-off-by: Serge Hallyn <serge.hal...@ubuntu.com>
Acked-by: Stéphane Graber <stgra...@ubuntu.com> > --- > src/lxc/cgroup.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/src/lxc/cgroup.c b/src/lxc/cgroup.c > index 8be0ebf..f2a686a 100644 > --- a/src/lxc/cgroup.c > +++ b/src/lxc/cgroup.c > @@ -1944,6 +1944,7 @@ int count_lines(const char *fn) > int handle_cgroup_settings(struct cgroup_mount_point *mp, char *cgroup_path) > { > int r, saved_errno = 0; > + char buf[2]; > > /* If this is the memory cgroup, we want to enforce hierarchy. > * But don't fail if for some reason we can't. > @@ -1951,9 +1952,12 @@ int handle_cgroup_settings(struct cgroup_mount_point > *mp, char *cgroup_path) > if (lxc_string_in_array("memory", (const char > **)mp->hierarchy->subsystems)) { > char *cc_path = cgroup_to_absolute_path(mp, cgroup_path, > "/memory.use_hierarchy"); > if (cc_path) { > - r = lxc_write_to_file(cc_path, "1", 1, false); > - if (r < 0) > - SYSERROR("failed to set memory.use_hiararchy to > 1; continuing"); > + r = lxc_read_from_file(cc_path, buf, 1); > + if (r < 1 || buf[0] != '1') { > + r = lxc_write_to_file(cc_path, "1", 1, false); > + if (r < 0) > + SYSERROR("failed to set > memory.use_hiararchy to 1; continuing"); > + } > free(cc_path); > } > } > @@ -1966,6 +1970,11 @@ int handle_cgroup_settings(struct cgroup_mount_point > *mp, char *cgroup_path) > char *cc_path = cgroup_to_absolute_path(mp, cgroup_path, > "/cgroup.clone_children"); > if (!cc_path) > return -1; > + r = lxc_read_from_file(cc_path, buf, 1); > + if (r == 1 && buf[0] == '1') { > + free(cc_path); > + return 0; > + } > r = lxc_write_to_file(cc_path, "1", 1, false); > saved_errno = errno; > free(cc_path); > -- > 1.8.5.2 > > _______________________________________________ > lxc-devel mailing list > lxc-devel@lists.linuxcontainers.org > http://lists.linuxcontainers.org/listinfo/lxc-devel -- Stéphane Graber Ubuntu developer http://www.ubuntu.com
signature.asc
Description: Digital signature
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel