From 6e392c9c45643d106673c6643ac8bf4e65da13c1 Mon Sep 17 00:00:00 2001 From: Ivan Shapovalov Date: Sat, 7 Mar 2015 08:44:52 -0500 Subject: 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 --- src/core/busname.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/busname.c') 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; -- cgit v1.2.3-54-g00ecf