chiark / gitweb /
udev: declare some symbols static
[elogind.git] / src / core / scope.c
index e0de951b11cd613dcf0048b57c1fea2918204568..41da3b9378dc2f083fa8d5bf119aadfd783ef826 100644 (file)
@@ -46,7 +46,7 @@ static void scope_init(Unit *u) {
         assert(u);
         assert(u->load_state == UNIT_STUB);
 
-        s->timeout_stop_usec = DEFAULT_TIMEOUT_USEC;
+        s->timeout_stop_usec = u->manager->default_timeout_stop_usec;
 
         watch_init(&s->timer_watch);
 
@@ -112,7 +112,7 @@ static int scope_verify(Scope *s) {
         if (UNIT(s)->load_state != UNIT_LOADED)
                 return 0;
 
-        if (set_size(s->pids) <= 0) {
+        if (set_size(s->pids) <= 0 && UNIT(s)->manager->n_reloading <= 0) {
                 log_error_unit(UNIT(s)->id, "Scope %s has no PIDs. Refusing.", UNIT(s)->id);
                 return -EINVAL;
         }
@@ -239,6 +239,9 @@ static int scope_start(Unit *u) {
 
         assert(s);
 
+        if (s->state == SCOPE_FAILED)
+                return -EPERM;
+
         if (s->state == SCOPE_STOP_SIGTERM ||
             s->state == SCOPE_STOP_SIGKILL)
                 return -EAGAIN;
@@ -254,7 +257,7 @@ static int scope_start(Unit *u) {
                 return r;
         }
 
-        r = cg_attach_many_with_mask(u->cgroup_mask, u->cgroup_path, s->pids);
+        r = cg_attach_many_everywhere(u->manager->cgroup_supported, u->cgroup_path, s->pids);
         if (r < 0)
                 return r;