core: assorted cleanups (#37410)

This commit is contained in:
Yu Watanabe
2025-05-13 08:32:20 +09:00
committed by GitHub
3 changed files with 28 additions and 28 deletions

View File

@@ -1551,7 +1551,7 @@ int bus_set_transient_exec_command(
path = _PATH_BSHELL;
if (strv_isempty(argv))
r = strv_extend(&argv, path);
r = strv_extend(&argv, "sh");
else
r = free_and_strdup(&argv[0], argv[0][0] == '-' ? "-sh" : "sh");
if (r < 0)

View File

@@ -2351,8 +2351,9 @@ static int bus_unit_set_transient_property(
}
return 1;
}
} else if (streq(name, "Slice")) {
if (streq(name, "Slice")) {
Unit *slice;
const char *s;
@@ -2389,8 +2390,9 @@ static int bus_unit_set_transient_property(
}
return 1;
}
} else if (STR_IN_SET(name, "RequiresMountsFor", "WantsMountsFor")) {
if (STR_IN_SET(name, "RequiresMountsFor", "WantsMountsFor")) {
_cleanup_strv_free_ char **l = NULL;
r = sd_bus_message_read_strv(message, &l);
@@ -2421,13 +2423,35 @@ static int bus_unit_set_transient_property(
return 1;
}
if (streq(name, "AddRef")) {
int b;
/* Why is this called "AddRef" rather than just "Ref", or "Reference"? There's already a "Ref()" method
* on the Unit interface, and it's probably not a good idea to expose a property and a method on the
* same interface (well, strictly speaking AddRef isn't exposed as full property, we just read it for
* transient units, but still). And "References" and "ReferencedBy" is already used as unit reference
* dependency type, hence let's not confuse things with that.
*
* Note that we don't actually add the reference to the bus track. We do that only after the setup of
* the transient unit is complete, so that setting this property multiple times in the same transient
* unit creation call doesn't count as individual references. */
r = sd_bus_message_read(message, "b", &b);
if (r < 0)
return r;
if (!UNIT_WRITE_FLAGS_NOOP(flags))
u->bus_track_add = b;
return 1;
}
if (streq(name, "RequiresOverridable"))
d = UNIT_REQUIRES; /* redirect for obsolete unit dependency type */
else if (streq(name, "RequisiteOverridable"))
d = UNIT_REQUISITE; /* same here */
else
d = unit_dependency_from_string(name);
if (d >= 0) {
const char *other;
@@ -2481,29 +2505,6 @@ static int bus_unit_set_transient_property(
return r;
return 1;
} else if (streq(name, "AddRef")) {
int b;
/* Why is this called "AddRef" rather than just "Ref", or "Reference"? There's already a "Ref()" method
* on the Unit interface, and it's probably not a good idea to expose a property and a method on the
* same interface (well, strictly speaking AddRef isn't exposed as full property, we just read it for
* transient units, but still). And "References" and "ReferencedBy" is already used as unit reference
* dependency type, hence let's not confuse things with that.
*
* Note that we don't actually add the reference to the bus track. We do that only after the setup of
* the transient unit is complete, so that setting this property multiple times in the same transient
* unit creation call doesn't count as individual references. */
r = sd_bus_message_read(message, "b", &b);
if (r < 0)
return r;
if (!UNIT_WRITE_FLAGS_NOOP(flags))
u->bus_track_add = b;
return 1;
}
return 0;

View File

@@ -24,7 +24,6 @@ static const UnitActiveState state_translation_table[_SLICE_STATE_MAX] = {
static void slice_init(Unit *u) {
Slice *s = ASSERT_PTR(SLICE(u));
assert(u);
assert(u->load_state == UNIT_STUB);
u->ignore_on_isolate = true;