]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
transaction: introduce transaction_abort_and_free()
authorDavid Tardon <dtardon@redhat.com>
Fri, 21 Apr 2023 13:13:35 +0000 (15:13 +0200)
committerDavid Tardon <dtardon@redhat.com>
Fri, 28 Apr 2023 07:26:20 +0000 (09:26 +0200)
Will be used in following commits.

src/core/transaction.c
src/core/transaction.h

index 0038d541b3e1e24f6014a9cef800cd524822d93e..1c71d58c81ba57d8c14e347418a4add4d4813755 100644 (file)
@@ -1208,3 +1208,12 @@ Transaction *transaction_free(Transaction *tr) {
 
         return mfree(tr);
 }
+
+Transaction *transaction_abort_and_free(Transaction *tr) {
+        if (!tr)
+                return NULL;
+
+        transaction_abort(tr);
+
+        return transaction_free(tr);
+}
index 5258e27106d4bb75faafaa818b23c44457d8a6ba..79012d4d1d2edce5e8b3667c73d6fd1c37d27ac4 100644 (file)
@@ -17,6 +17,8 @@ struct Transaction {
 
 Transaction *transaction_new(bool irreversible);
 Transaction *transaction_free(Transaction *tr);
+Transaction *transaction_abort_and_free(Transaction *tr);
+DEFINE_TRIVIAL_CLEANUP_FUNC(Transaction*, transaction_abort_and_free);
 
 void transaction_add_propagate_reload_jobs(Transaction *tr, Unit *unit, Job *by, bool ignore_order, sd_bus_error *e);
 int transaction_add_job_and_dependencies(