aboutsummaryrefslogtreecommitdiff
path: root/util/transactions.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/transactions.c')
-rw-r--r--util/transactions.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/util/transactions.c b/util/transactions.c
index d0bc9a3..2dbdedc 100644
--- a/util/transactions.c
+++ b/util/transactions.c
@@ -61,11 +61,13 @@ void tran_abort(Transaction *tran)
{
TransactionAction *act, *next;
- QSLIST_FOREACH_SAFE(act, &tran->actions, entry, next) {
+ QSLIST_FOREACH(act, &tran->actions, entry) {
if (act->drv->abort) {
act->drv->abort(act->opaque);
}
+ }
+ QSLIST_FOREACH_SAFE(act, &tran->actions, entry, next) {
if (act->drv->clean) {
act->drv->clean(act->opaque);
}
@@ -80,11 +82,13 @@ void tran_commit(Transaction *tran)
{
TransactionAction *act, *next;
- QSLIST_FOREACH_SAFE(act, &tran->actions, entry, next) {
+ QSLIST_FOREACH(act, &tran->actions, entry) {
if (act->drv->commit) {
act->drv->commit(act->opaque);
}
+ }
+ QSLIST_FOREACH_SAFE(act, &tran->actions, entry, next) {
if (act->drv->clean) {
act->drv->clean(act->opaque);
}