X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Ftransaction.c;h=dbb4133fe38f853f893a3c90b72082002414e7d8;hb=9f103625b145a397e67c3714766775b615c8b587;hp=d23a45c3f517b776351ec7c75bdc37ecd4dfaa4b;hpb=04ef5b03f64d3824a51a2a903548af029a006744;p=elogind.git diff --git a/src/core/transaction.c b/src/core/transaction.c index d23a45c3f..dbb4133fe 100644 --- a/src/core/transaction.c +++ b/src/core/transaction.c @@ -381,7 +381,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi "Found dependency on %s/%s", k->unit->id, job_type_to_string(k->type)); - if (!delete && + if (!delete && hashmap_get(tr->jobs, k->unit) && !unit_matters_to_anchor(k->unit, k)) { /* Ok, we can drop this one, so let's * do so. */ @@ -870,7 +870,7 @@ int transaction_add_job_and_dependencies( } if (type != JOB_STOP && unit->load_state == UNIT_ERROR) { - if (unit->load_error == -ENOENT) + if (unit->load_error == -ENOENT || unit->manager->test_run) sd_bus_error_setf(e, BUS_ERROR_LOAD_FAILED, "Unit %s failed to load: %s.", unit->id, @@ -1143,7 +1143,7 @@ Transaction *transaction_new(bool irreversible) { if (!tr) return NULL; - tr->jobs = hashmap_new(trivial_hash_func, trivial_compare_func); + tr->jobs = hashmap_new(NULL); if (!tr->jobs) { free(tr); return NULL;