diff options
Diffstat (limited to '')
-rw-r--r-- | src/core/job.c | 4 | ||||
-rw-r--r-- | src/core/job.h | 2 | ||||
-rw-r--r-- | src/core/transaction.c | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/core/job.c b/src/core/job.c index 3d5e4e42d1..95e71c48e2 100644 --- a/src/core/job.c +++ b/src/core/job.c @@ -217,7 +217,7 @@ static void job_merge_into_installed(Job *j, Job *other) { j->ignore_order = j->ignore_order || other->ignore_order; } -Job* job_install(Job *j) { +Job* job_install(Job *j, JobMode mode) { Job **pj; Job *uj; @@ -235,7 +235,7 @@ Job* job_install(Job *j) { /* not conflicting, i.e. mergeable */ if (uj->state == JOB_WAITING || - (job_type_allows_late_merge(j->type) && job_type_is_superset(uj->type, j->type))) { + (job_type_allows_late_merge(j->type) && mode != JOB_RESTART_DEPENDENCIES && job_type_is_superset(uj->type, j->type))) { job_merge_into_installed(uj, j); log_unit_debug(uj->unit, "Merged %s/%s into installed job %s/%s as %"PRIu32, diff --git a/src/core/job.h b/src/core/job.h index d3b98d98b6..2c4fbdf4ed 100644 --- a/src/core/job.h +++ b/src/core/job.h @@ -169,7 +169,7 @@ Job* job_new(Unit *unit, JobType type); Job* job_new_raw(Unit *unit); void job_unlink(Job *job); Job* job_free(Job *job); -Job* job_install(Job *j); +Job* job_install(Job *j, JobMode mode); int job_install_deserialized(Job *j); void job_uninstall(Job *j); void job_dump(Job *j, FILE *f, const char *prefix); diff --git a/src/core/transaction.c b/src/core/transaction.c index c85bc667ce..8b8e02f1c7 100644 --- a/src/core/transaction.c +++ b/src/core/transaction.c @@ -657,7 +657,7 @@ static int transaction_apply( /* Clean the job dependencies */ transaction_unlink_job(tr, j, false); - installed_job = job_install(j); + installed_job = job_install(j, mode); if (installed_job != j) { /* j has been merged into a previously installed job */ if (tr->anchor_job == j) |