X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Funit.c;h=5d51f99966e8deb660cbe28cc3d2324bace7add5;hp=c287310a48908474c778d66291164a0218a2c99e;hb=55096547212928b0ba83fca2595cae0d66d3c0b0;hpb=1e001f52d20a4685c9e8cf3cfa690021ca05c9e7 diff --git a/src/unit.c b/src/unit.c index c287310a4..5d51f9996 100644 --- a/src/unit.c +++ b/src/unit.c @@ -973,6 +973,9 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) { if (ns != os && ns == UNIT_MAINTENANCE) log_notice("Unit %s entered maintenance state.", u->meta.id); + if (UNIT_IS_INACTIVE_OR_MAINTENANCE(ns)) + cgroup_bonding_trim_list(u->meta.cgroup_bondings, true); + timer_unit_notify(u, ns); path_unit_notify(u, ns); @@ -1595,7 +1598,7 @@ int unit_add_cgroup_from_text(Unit *u, const char *name) { if (n > 0) controller = strndup(name, n); else - controller = strdup(u->meta.manager->cgroup_controller); + controller = strdup(SYSTEMD_CGROUP_CONTROLLER); if (!controller) { r = -ENOMEM; @@ -1644,7 +1647,7 @@ int unit_add_default_cgroup(Unit *u) { if (!(b = new0(CGroupBonding, 1))) return -ENOMEM; - if (!(b->controller = strdup(u->meta.manager->cgroup_controller))) + if (!(b->controller = strdup(SYSTEMD_CGROUP_CONTROLLER))) goto fail; if (!(b->path = default_cgroup_path(u))) @@ -1669,7 +1672,7 @@ fail: CGroupBonding* unit_get_default_cgroup(Unit *u) { assert(u); - return cgroup_bonding_find_list(u->meta.cgroup_bondings, u->meta.manager->cgroup_controller); + return cgroup_bonding_find_list(u->meta.cgroup_bondings, SYSTEMD_CGROUP_CONTROLLER); } int unit_load_related_unit(Unit *u, const char *type, Unit **_found) {