diff --git a/src/core/cgroup.c b/src/core/cgroup.c index c2e57a0cdd..e5c7c7de61 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -1496,9 +1496,9 @@ static int unit_realize_cgroup_now(Unit *u, ManagerState state) { assert(u); - if (u->in_cgroup_queue) { - LIST_REMOVE(cgroup_queue, u->manager->cgroup_queue, u); - u->in_cgroup_queue = false; + if (u->in_cgroup_realize_queue) { + LIST_REMOVE(cgroup_realize_queue, u->manager->cgroup_realize_queue, u); + u->in_cgroup_realize_queue = false; } target_mask = unit_get_target_mask(u); @@ -1532,26 +1532,28 @@ static int unit_realize_cgroup_now(Unit *u, ManagerState state) { return 0; } -static void unit_add_to_cgroup_queue(Unit *u) { +static void unit_add_to_cgroup_realize_queue(Unit *u) { assert(u); - if (u->in_cgroup_queue) + if (u->in_cgroup_realize_queue) return; - LIST_PREPEND(cgroup_queue, u->manager->cgroup_queue, u); - u->in_cgroup_queue = true; + LIST_PREPEND(cgroup_realize_queue, u->manager->cgroup_realize_queue, u); + u->in_cgroup_realize_queue = true; } -unsigned manager_dispatch_cgroup_queue(Manager *m) { +unsigned manager_dispatch_cgroup_realize_queue(Manager *m) { ManagerState state; unsigned n = 0; Unit *i; int r; + assert(m); + state = manager_state(m); - while ((i = m->cgroup_queue)) { - assert(i->in_cgroup_queue); + while ((i = m->cgroup_realize_queue)) { + assert(i->in_cgroup_realize_queue); r = unit_realize_cgroup_now(i, state); if (r < 0) @@ -1563,7 +1565,7 @@ unsigned manager_dispatch_cgroup_queue(Manager *m) { return n; } -static void unit_queue_siblings(Unit *u) { +static void unit_add_siblings_to_cgroup_realize_queue(Unit *u) { Unit *slice; /* This adds the siblings of the specified unit and the @@ -1597,7 +1599,7 @@ static void unit_queue_siblings(Unit *u) { unit_get_needs_bpf(m))) continue; - unit_add_to_cgroup_queue(m); + unit_add_to_cgroup_realize_queue(m); } u = slice; @@ -1622,7 +1624,7 @@ int unit_realize_cgroup(Unit *u) { * iteration. */ /* Add all sibling slices to the cgroup queue. */ - unit_queue_siblings(u); + unit_add_siblings_to_cgroup_realize_queue(u); /* And realize this one now (and apply the values) */ return unit_realize_cgroup_now(u, manager_state(u->manager)); @@ -2329,7 +2331,7 @@ void unit_invalidate_cgroup(Unit *u, CGroupMask m) { return; u->cgroup_realized_mask &= ~m; - unit_add_to_cgroup_queue(u); + unit_add_to_cgroup_realize_queue(u); } void unit_invalidate_cgroup_bpf(Unit *u) { @@ -2342,7 +2344,7 @@ void unit_invalidate_cgroup_bpf(Unit *u) { return; u->cgroup_bpf_state = UNIT_CGROUP_BPF_INVALIDATED; - unit_add_to_cgroup_queue(u); + unit_add_to_cgroup_realize_queue(u); /* If we are a slice unit, we also need to put compile a new BPF program for all our children, as the IP access * list of our children includes our own. */ diff --git a/src/core/cgroup.h b/src/core/cgroup.h index 10ac322aed..e422708804 100644 --- a/src/core/cgroup.h +++ b/src/core/cgroup.h @@ -177,7 +177,7 @@ int unit_attach_pids_to_cgroup(Unit *u); int manager_setup_cgroup(Manager *m); void manager_shutdown_cgroup(Manager *m, bool delete); -unsigned manager_dispatch_cgroup_queue(Manager *m); +unsigned manager_dispatch_cgroup_realize_queue(Manager *m); Unit *manager_get_unit_by_cgroup(Manager *m, const char *cgroup); Unit *manager_get_unit_by_pid_cgroup(Manager *m, pid_t pid); diff --git a/src/core/manager.c b/src/core/manager.c index 5cf4bc4ee6..da2a8c4715 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -2367,7 +2367,7 @@ int manager_loop(Manager *m) { if (manager_dispatch_cleanup_queue(m) > 0) continue; - if (manager_dispatch_cgroup_queue(m) > 0) + if (manager_dispatch_cgroup_realize_queue(m) > 0) continue; if (manager_dispatch_dbus_queue(m) > 0) diff --git a/src/core/manager.h b/src/core/manager.h index e8a6267471..9941dd10d8 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -119,7 +119,7 @@ struct Manager { LIST_HEAD(Job, gc_job_queue); /* Units that should be realized */ - LIST_HEAD(Unit, cgroup_queue); + LIST_HEAD(Unit, cgroup_realize_queue); sd_event *event; diff --git a/src/core/unit.c b/src/core/unit.c index 6d9b85fb85..190c05c98e 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -588,8 +588,8 @@ void unit_free(Unit *u) { if (u->in_gc_queue) LIST_REMOVE(gc_queue, u->manager->gc_unit_queue, u); - if (u->in_cgroup_queue) - LIST_REMOVE(cgroup_queue, u->manager->cgroup_queue, u); + if (u->in_cgroup_realize_queue) + LIST_REMOVE(cgroup_realize_queue, u->manager->cgroup_realize_queue, u); unit_release_cgroup(u); diff --git a/src/core/unit.h b/src/core/unit.h index 3bd2ca4f5f..da40a433a3 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -166,7 +166,7 @@ struct Unit { LIST_FIELDS(Unit, gc_queue); /* CGroup realize members queue */ - LIST_FIELDS(Unit, cgroup_queue); + LIST_FIELDS(Unit, cgroup_realize_queue); /* PIDs we keep an eye on. Note that a unit might have many * more, but these are the ones we care enough about to @@ -263,7 +263,7 @@ struct Unit { bool in_dbus_queue:1; bool in_cleanup_queue:1; bool in_gc_queue:1; - bool in_cgroup_queue:1; + bool in_cgroup_realize_queue:1; bool sent_dbus_new_signal:1;