chiark / gitweb /
core: make RuntimeDirectory honor SELinux labels
[elogind.git] / src / core / scope.c
index abadd1f82714a8a73a70189c8435c01b71973bb0..b41db7872c4ef5a2811aacc7ff2ffe2249f79911 100644 (file)
@@ -288,20 +288,14 @@ 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_errno(-r, "Failed to realize cgroup: %m");
-                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;
 
         s->result = SCOPE_SUCCESS;
 
         scope_set_state(s, SCOPE_RUNNING);
-        return 0;
+        return 1;
 }
 
 static int scope_stop(Unit *u) {
@@ -317,7 +311,7 @@ static int scope_stop(Unit *u) {
                s->state == SCOPE_ABANDONED);
 
         scope_enter_signal(s, SCOPE_STOP_SIGTERM, SCOPE_SUCCESS);
-        return 0;
+        return 1;
 }
 
 static void scope_reset_failed(Unit *u) {
@@ -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;