From: Michal Schmidt Date: Fri, 20 Apr 2012 08:33:37 +0000 (+0200) Subject: transaction: change the linking of isolate jobs to the anchor X-Git-Tag: v183~241 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4483f694983382b4092e3e295ffb59926cff96d9;p=systemd transaction: change the linking of isolate jobs to the anchor When isolating, the JOB_STOP jobs have no parent job, so they are all peers of the real anchor job. This is a bit odd. Link them from the anchor job. --- diff --git a/src/core/transaction.c b/src/core/transaction.c index d7ecfdb4..09abe007 100644 --- a/src/core/transaction.c +++ b/src/core/transaction.c @@ -893,8 +893,8 @@ int transaction_add_job_and_dependencies( /* If the link has no subject job, it's the anchor link. */ if (!by) { LIST_PREPEND(JobDependency, subject, tr->anchor, l); - if (!tr->anchor_job) - tr->anchor_job = ret; + assert(!tr->anchor_job); + tr->anchor_job = ret; } if (is_new && !ignore_requirements) { @@ -1077,7 +1077,7 @@ int transaction_add_isolate_jobs(Transaction *tr, Manager *m) { if (hashmap_get(tr->jobs, u)) continue; - r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, NULL, true, false, false, false, false, NULL); + r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, tr->anchor_job, true, false, false, false, false, NULL); if (r < 0) log_warning("Cannot add isolate job for unit %s, ignoring: %s", u->id, strerror(-r)); }