X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fscope.c;h=e0da6e4db7965739cd99ad5444b5816ebcc1599b;hb=e24e415e5f3af2fe86d2be9a1f1a2e8d5f8c96bf;hp=a2b9265061afc5b0ce1b4458cca2b317831b665b;hpb=79008bddf679a5e0900369950eb346c9fa687107;p=elogind.git diff --git a/src/core/scope.c b/src/core/scope.c index a2b926506..e0da6e4db 100644 --- a/src/core/scope.c +++ b/src/core/scope.c @@ -288,13 +288,7 @@ static int scope_start(Unit *u) { if (!u->transient && UNIT(s)->manager->n_reloading <= 0) return -ENOENT; - r = unit_realize_cgroup(u); - if (r < 0) { - log_error("Failed to realize cgroup: %s", strerror(-r)); - return r; - } - - r = cg_attach_many_everywhere(u->manager->cgroup_supported, u->cgroup_path, UNIT(s)->pids); + r = unit_attach_pids_to_cgroup(u); if (r < 0) return r; @@ -384,15 +378,14 @@ static int scope_deserialize_item(Unit *u, const char *key, const char *value, F } static bool scope_check_gc(Unit *u) { - Scope *s = SCOPE(u); - int r; - - assert(s); + assert(u); /* Never clean up scopes that still have a process around, * even if the scope is formally dead. */ if (u->cgroup_path) { + int r; + r = cg_is_empty_recursive(SYSTEMD_CGROUP_CONTROLLER, u->cgroup_path, true); if (r <= 0) return true;