X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Funit.c;h=5d51f99966e8deb660cbe28cc3d2324bace7add5;hb=55096547212928b0ba83fca2595cae0d66d3c0b0;hp=a5f8712ae6d1101b358ad092095b4bfa6c002ea5;hpb=398ef8ba0266cca453d90a90b3a2aa1caa44189f;p=elogind.git diff --git a/src/unit.c b/src/unit.c index a5f8712ae..5d51f9996 100644 --- a/src/unit.c +++ b/src/unit.c @@ -970,6 +970,12 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) { else if (UNIT_IS_ACTIVE_OR_RELOADING(os) && !UNIT_IS_ACTIVE_OR_RELOADING(ns)) u->meta.active_exit_timestamp = ts; + 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); @@ -1592,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; @@ -1641,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))) @@ -1666,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) {