From 27344f9acf7b23225020cc4a2d63d5e10d35308f Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Mon, 15 Jul 2024 20:32:47 +0200 Subject: [PATCH] core/cgroup: replace hardcoded state set with freezer_state_finish() This makes code simpler and more readable. --- src/core/cgroup.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/core/cgroup.c b/src/core/cgroup.c index e370a04b8f6..8abfd31c7b5 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -5131,10 +5131,11 @@ int unit_cgroup_freezer_action(Unit *u, FreezerAction action) { if (current == objective) next = freezer_state_finish(next); - else if (IN_SET(next, FREEZER_FROZEN, FREEZER_FROZEN_BY_PARENT, FREEZER_RUNNING)) { - /* We're transitioning into a finished state, which implies that the cgroup's - * current state already matches the objective and thus we'd return 0. But, reality - * shows otherwise. This indicates that our freezer_state tracking has diverged + else if (next == freezer_state_finish(next)) { + /* We're directly transitioning into a finished state, which in theory means that + * the cgroup's current state already matches the objective and thus we'd return 0. + * But, reality shows otherwise (such case would have been handled by current == objective + * branch above). This indicates that our freezer_state tracking has diverged * from the real state of the cgroup, which can happen if someone meddles with the * cgroup from underneath us. This really shouldn't happen during normal operation, * though. So, let's warn about it and fix up the state to be valid */ -- 2.47.3