manager: don't consider transaction jobs conflicting with queued jobs redundant

This commit is contained in:
Lennart Poettering 2011-02-16 19:33:17 +01:00
parent 3ede835a04
commit 3aea3b3597
2 changed files with 13 additions and 3 deletions

8
TODO
View File

@ -7,13 +7,17 @@ Bugs:
* systemctl default is started when we type "reboot" at rescue mode prompt
* mkswap/mke2fs aus cryptsetup unit muss vor dem mounten ausgeführt werden.
* exclude java hsp files by default
https://bugzilla.redhat.com/show_bug.cgi?id=527425
Features:
* add --ignore-deps to systemctl
* add --failed to systemctl
* increase password timeout
* look up crypto partition mount points via fstab to show to the user when prompting for a password
* Maybe store in unit files whether a service should be enabled by default on package installation

View File

@ -913,7 +913,8 @@ static void transaction_drop_redundant(Manager *m) {
LIST_FOREACH(transaction, k, j) {
if (!job_is_anchor(k) &&
(j->installed || job_type_is_redundant(k->type, unit_active_state(k->unit))))
(k->installed || job_type_is_redundant(k->type, unit_active_state(k->unit))) &&
(!k->unit->meta.job || !job_type_is_conflicting(k->type, k->unit->meta.job->type)))
continue;
changes_something = true;
@ -1423,6 +1424,11 @@ static int transaction_add_job_and_dependencies(
assert(type < _JOB_TYPE_MAX);
assert(unit);
/* log_debug("Pulling in %s/%s from %s/%s", */
/* unit->meta.id, job_type_to_string(type), */
/* by ? by->unit->meta.id : "NA", */
/* by ? job_type_to_string(by->type) : "NA"); */
if (unit->meta.load_state != UNIT_LOADED &&
unit->meta.load_state != UNIT_ERROR &&
unit->meta.load_state != UNIT_MASKED) {