chiark / gitweb /
core: fix check for transaction destructiveness
authorMichal Schmidt <mschmidt@redhat.com>
Wed, 26 Nov 2014 15:33:46 +0000 (16:33 +0100)
committerMichal Schmidt <mschmidt@redhat.com>
Wed, 26 Nov 2014 15:33:46 +0000 (16:33 +0100)
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.

src/core/transaction.c

index bbaa6daa764f40aaece0362813b12354fbbbe370..b992eddf994fbfc45a8188915c564f4070d2fd94 100644 (file)
@@ -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.");
         }