From: Serge Hallyn Date: Tue, 12 Apr 2016 17:34:28 +0000 (-0500) Subject: cgfsng: don't require that systemd subsystem be mounted X-Git-Tag: lxc-2.1.0~449^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F971%2Fhead;p=thirdparty%2Flxc.git cgfsng: don't require that systemd subsystem be mounted Note that is_crucial_subsystem still lists name=systemd. That is used in cgfs and cgmanager. Cgmanager is typically setup to create name=systemd, so it is ok. cgfs uses is_crucial_subsystem() only to decide whether failure to create or chown a directory should be terminal. That's ok, because (a) if name=systemd is not mounted then we won't hit that, and (b) if name=systemd is mounted, then we'd really still like to set it up for containers. Signed-off-by: Serge Hallyn --- diff --git a/src/lxc/cgfsng.c b/src/lxc/cgfsng.c index fad0be4a4..1e723473b 100644 --- a/src/lxc/cgfsng.c +++ b/src/lxc/cgfsng.c @@ -407,19 +407,14 @@ static bool controller_found(struct hierarchy **hlist, char *entry) } /* - * Return true if all of the controllers which we require have been - * found. The required list is systemd, freezer, and anything in - * lxc.cgroup.use. + * Return true if all of the controllers which we require have been found. + * The required list is freezer and anything in * lxc.cgroup.use. */ static bool all_controllers_found(void) { char *p, *saveptr = NULL; struct hierarchy ** hlist = hierarchies; - if (!controller_found(hlist, "name=systemd")) { - ERROR("no systemd controller mountpoint found"); - return false; - } if (!controller_found(hlist, "freezer")) { ERROR("no freezer controller mountpoint found"); return false; diff --git a/src/lxc/cgroup.c b/src/lxc/cgroup.c index 1a92ef42a..91ef359a5 100644 --- a/src/lxc/cgroup.c +++ b/src/lxc/cgroup.c @@ -226,7 +226,12 @@ void prune_init_scope(char *cg) /* * Return true if this is a subsystem which we cannot do - * without + * without. + * + * systemd is questionable here. The way callers currently + * use this, if systemd is not mounted then it will be ignored. + * But if systemd is mounted, then it must be setup so that lxc + * can create cgroups in it, else containers will fail. */ bool is_crucial_cgroup_subsystem(const char *s) {