From: Lennart Poettering Date: Wed, 16 Feb 2011 18:33:17 +0000 (+0100) Subject: manager: don't consider transaction jobs conflicting with queued jobs redundant X-Git-Tag: v18~5 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=3aea3b35979b377b7673132b601aab8a33e20cdc manager: don't consider transaction jobs conflicting with queued jobs redundant --- diff --git a/TODO b/TODO index 1c0811e46..65a102c4f 100644 --- a/TODO +++ b/TODO @@ -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 diff --git a/src/manager.c b/src/manager.c index 7d0b351c9..b2aa8ee45 100644 --- a/src/manager.c +++ b/src/manager.c @@ -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) {