From: Michal Schmidt Date: Wed, 26 Nov 2014 15:33:46 +0000 (+0100) Subject: core: fix check for transaction destructiveness X-Git-Tag: v218~328 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=e0312f4db08c7100bd00299614e87bedc759b366;p=elogind.git core: fix check for transaction destructiveness When checking if the transaction is destructive, we need to check if the previously installed job is a superset of the new job (and hence the new job will fold into the installed one without changing it), not the other way around. --- diff --git a/src/core/transaction.c b/src/core/transaction.c index bbaa6daa7..b992eddf9 100644 --- a/src/core/transaction.c +++ b/src/core/transaction.c @@ -511,7 +511,7 @@ static int transaction_is_destructive(Transaction *tr, JobMode mode, sd_bus_erro assert(!j->transaction_next); if (j->unit->job && (mode == JOB_FAIL || j->unit->job->irreversible) && - !job_type_is_superset(j->type, j->unit->job->type)) + !job_type_is_superset(j->unit->job->type, j->type)) return sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE, "Transaction is destructive."); }