diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-02-22 22:09:38 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-02-23 01:11:18 +0100 |
commit | 8ebfd50aaf5503de0e77e7786095760030458e67 (patch) | |
tree | 6003d3d8635f3b81087f0fad0c09cccebd499ed0 /src/shared/condition.c | |
parent | 6c3f7ca036829825f344ffb364354faee5db174e (diff) | |
download | systemd-8ebfd50aaf5503de0e77e7786095760030458e67.tar.gz |
shared/condition: add ConditionControlGroupController=v1|v2
Before, we only allowed conditionalizing on controllers, not the hierarchy.
This commit extends this to allow a simple check for v1 (i.e. classic or hybrid),
and v2 (full unified).
An alternative approach would be to add a separate Condition for this, but I'm
not too keen on that, considering that v1 is already being deprecrecated
(c.f. 82f3063218).
Diffstat (limited to 'src/shared/condition.c')
-rw-r--r-- | src/shared/condition.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/shared/condition.c b/src/shared/condition.c index 1e63956c05..d84377c269 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c @@ -354,6 +354,15 @@ static int condition_test_control_group_controller(Condition *c, char **env) { assert(c->parameter); assert(c->type == CONDITION_CONTROL_GROUP_CONTROLLER); + if (streq(c->parameter, "v2")) + return cg_all_unified(); + if (streq(c->parameter, "v1")) { + r = cg_all_unified(); + if (r < 0) + return r; + return !r; + } + r = cg_mask_supported(&system_mask); if (r < 0) return log_debug_errno(r, "Failed to determine supported controllers: %m"); |