summaryrefslogtreecommitdiff
path: root/src/job.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-10-29 06:04:42 +0200
committerLennart Poettering <lennart@poettering.net>2010-10-29 16:28:30 +0200
commite6a3ff9593e88a57390534b8ad3de7a57cafbdb0 (patch)
tree147d154331d7e5b7e694c3516fb62410a07da358 /src/job.c
parent70f12d37087721089a150fad985f0dca0f8af277 (diff)
job: recursively fail BoundBy dependencies
Diffstat (limited to 'src/job.c')
-rw-r--r--src/job.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/job.c b/src/job.c
index 8a74f8b614..8ab12cd624 100644
--- a/src/job.c
+++ b/src/job.c
@@ -506,6 +506,13 @@ int job_finish_and_invalidate(Job *j, bool success) {
other->meta.job->type == JOB_RELOAD_OR_START))
job_finish_and_invalidate(other->meta.job, false);
+ SET_FOREACH(other, u->meta.dependencies[UNIT_BOUND_BY], i)
+ if (other->meta.job &&
+ (other->meta.job->type == JOB_START ||
+ other->meta.job->type == JOB_VERIFY_ACTIVE ||
+ other->meta.job->type == JOB_RELOAD_OR_START))
+ job_finish_and_invalidate(other->meta.job, false);
+
SET_FOREACH(other, u->meta.dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i)
if (other->meta.job &&
!other->meta.job->override &&