Commit 7e6e7b06 authored by Lennart Poettering's avatar Lennart Poettering
Browse files

unit: retroactively start dependencies for job-less units too

parent ee5f3479
...@@ -949,6 +949,7 @@ static void retroactively_stop_dependencies(Unit *u) { ...@@ -949,6 +949,7 @@ static void retroactively_stop_dependencies(Unit *u) {
void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) { void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) {
dual_timestamp ts; dual_timestamp ts;
bool unexpected;
assert(u); assert(u);
assert(os < _UNIT_ACTIVE_STATE_MAX); assert(os < _UNIT_ACTIVE_STATE_MAX);
...@@ -983,7 +984,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) { ...@@ -983,7 +984,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) {
path_unit_notify(u, ns); path_unit_notify(u, ns);
if (u->meta.job) { if (u->meta.job) {
bool unexpected = false; unexpected = false;
if (u->meta.job->state == JOB_WAITING) if (u->meta.job->state == JOB_WAITING)
...@@ -1046,12 +1047,14 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) { ...@@ -1046,12 +1047,14 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) {
* requested by a job, then let's retroactively start * requested by a job, then let's retroactively start
* or stop dependencies */ * or stop dependencies */
if (unexpected) { } else
if (UNIT_IS_INACTIVE_OR_DEACTIVATING(os) && UNIT_IS_ACTIVE_OR_ACTIVATING(ns)) unexpected = true;
retroactively_start_dependencies(u);
else if (UNIT_IS_ACTIVE_OR_ACTIVATING(os) && UNIT_IS_INACTIVE_OR_DEACTIVATING(ns)) if (unexpected) {
retroactively_stop_dependencies(u); if (UNIT_IS_INACTIVE_OR_DEACTIVATING(os) && UNIT_IS_ACTIVE_OR_ACTIVATING(ns))
} retroactively_start_dependencies(u);
else if (UNIT_IS_ACTIVE_OR_ACTIVATING(os) && UNIT_IS_INACTIVE_OR_DEACTIVATING(ns))
retroactively_stop_dependencies(u);
} }
/* Some names are special */ /* Some names are special */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment