From 468e87267f08faa3064a16958a1a68d9cd2ea9c9 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Wed, 12 Feb 2025 17:48:59 +0100 Subject: [PATCH 1/2] core/unit: use UNIT_IS_INACTIVE_OR_FAILED at one more place --- src/core/unit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/unit.c b/src/core/unit.c index e6c5a45dcf2ae..3f4432f6556af 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -403,7 +403,7 @@ void unit_release_resources(Unit *u) { return; state = unit_active_state(u); - if (!IN_SET(state, UNIT_INACTIVE, UNIT_FAILED)) + if (!UNIT_IS_INACTIVE_OR_FAILED(state)) return; if (unit_will_restart(u)) From 818315ae61370998a4df7b92d89c338c9442c6df Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Wed, 12 Feb 2025 17:38:47 +0100 Subject: [PATCH 2/2] core/service: drop unneeded unit_add_to_gc_queue() Follow-up for a1d315730ffddf283d4bb9d73878fbcd97a4d244 and 6ac62d61db737b01ad3776a7688d8a4c57b3f7d9 With the aforementioned commits, unit_release_resources() is dispatched in a dedicated queue, and Service.n_keep_fd_store has been dropped, hence the comment is outdated. Moreover, the unit is added to GC queue in unit_notify() already. No other unit types do this in corresponding _enter_dead() functions, nor does Service need it anymore. --- src/core/service.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/core/service.c b/src/core/service.c index 626a47f7a8fd0..dca8a43cb4512 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -2152,10 +2152,6 @@ static void service_enter_dead(Service *s, ServiceResult f, bool allow_restart) (void) unit_set_debug_invocation(UNIT(s), false); } - /* The new state is in effect, let's decrease the fd store ref counter again. Let's also re-add us to the GC - * queue, so that the fd store is possibly gc'ed again */ - unit_add_to_gc_queue(UNIT(s)); - /* The next restart might not be a manual stop, hence reset the flag indicating manual stops */ s->forbid_restart = false;