diff options
author | Ivan Shapovalov <intelfx100@gmail.com> | 2015-03-07 08:44:52 -0500 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2015-03-07 08:44:57 -0500 |
commit | 6e392c9c45643d106673c6643ac8bf4e65da13c1 (patch) | |
tree | 77cd87fdc7f0e104f2f48fb0ea282111dde94766 /src/core/busname.c | |
parent | 6829cec4dce1b41c895425a120b70d0a3ed677ab (diff) |
core: do not spawn jobs or touch other units during coldplugging
Because the order of coldplugging is not defined, we can reference a
not-yet-coldplugged unit and read its state while it has not yet been
set to a meaningful value.
This way, already active units may get started again.
We fix this by deferring such actions until all units have been at
least somehow coldplugged.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=88401
Diffstat (limited to 'src/core/busname.c')
-rw-r--r-- | src/core/busname.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/busname.c b/src/core/busname.c index 1d77292f9b..43d7607a30 100644 --- a/src/core/busname.c +++ b/src/core/busname.c @@ -335,7 +335,7 @@ static void busname_set_state(BusName *n, BusNameState state) { unit_notify(UNIT(n), state_translation_table[old_state], state_translation_table[state], true); } -static int busname_coldplug(Unit *u) { +static int busname_coldplug(Unit *u, Hashmap *deferred_work) { BusName *n = BUSNAME(u); int r; |