1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-11 09:18:07 +03:00

core: Do not check child freezability when thawing slice

We want thawing operations to still succeed even in the presence of an
unfreezable unit type (e.g. mount) appearing under a slice after the
slice was frozen. The appearance of such units should never cause the
slice thawing operation to fail to prevent potential future repeats of
https://github.com/systemd/systemd/issues/25356.
This commit is contained in:
msizanoen1 2023-05-23 18:46:26 +07:00 committed by Yu Watanabe
parent a484320572
commit b458659a16

View File

@ -375,7 +375,7 @@ static int slice_freezer_action(Unit *s, FreezerAction action) {
assert(s);
assert(IN_SET(action, FREEZER_FREEZE, FREEZER_THAW));
if (!slice_freezer_action_supported_by_children(s)) {
if (action == FREEZER_FREEZE && !slice_freezer_action_supported_by_children(s)) {
log_unit_warning(s, "Requested freezer operation is not supported by all children of the slice");
return 0;
}
@ -386,8 +386,11 @@ static int slice_freezer_action(Unit *s, FreezerAction action) {
if (action == FREEZER_FREEZE)
r = UNIT_VTABLE(member)->freeze(member);
else
else if (UNIT_VTABLE(member)->thaw)
r = UNIT_VTABLE(member)->thaw(member);
else
/* Thawing is requested but no corresponding method is available, ignore. */
r = 0;
if (r < 0)
return r;
}