summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/core/job.c4
-rw-r--r--src/core/job.h2
-rw-r--r--src/core/transaction.c2
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)