X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftransaction.c;h=eab00e0937778b51ce79d7b48de26daf94c93c78;hp=a5f3c543e8194592f70e368d1f624b8833799a83;hb=6bc8ea012391198bc3898ae2937558b60dd55906;hpb=bbeb528e74c0e234e1f724ac8d54be404cfc6f9a diff --git a/ccan/tdb2/transaction.c b/ccan/tdb2/transaction.c index a5f3c543..eab00e09 100644 --- a/ccan/tdb2/transaction.c +++ b/ccan/tdb2/transaction.c @@ -521,6 +521,12 @@ enum TDB_ERROR tdb_transaction_start(struct tdb_context *tdb) { enum TDB_ERROR ecode; + if (tdb->flags & TDB_VERSION1) { + if (tdb1_transaction_start(tdb) == -1) + return tdb->last_error; + return TDB_SUCCESS; + } + tdb->stats.transactions++; /* some sanity checks */ if (tdb->flags & TDB_INTERNAL) { @@ -617,6 +623,10 @@ fail_allrecord_lock: */ void tdb_transaction_cancel(struct tdb_context *tdb) { + if (tdb->flags & TDB_VERSION1) { + tdb1_transaction_cancel(tdb); + return; + } tdb->stats.transaction_cancel++; _tdb_transaction_cancel(tdb); } @@ -1052,6 +1062,11 @@ static enum TDB_ERROR _tdb_transaction_prepare_commit(struct tdb_context *tdb) */ enum TDB_ERROR tdb_transaction_prepare_commit(struct tdb_context *tdb) { + if (tdb->flags & TDB_VERSION1) { + if (tdb1_transaction_prepare_commit(tdb) == -1) + return tdb->last_error; + return TDB_SUCCESS; + } return _tdb_transaction_prepare_commit(tdb); } @@ -1064,6 +1079,12 @@ enum TDB_ERROR tdb_transaction_commit(struct tdb_context *tdb) int i; enum TDB_ERROR ecode; + if (tdb->flags & TDB_VERSION1) { + if (tdb1_transaction_commit(tdb) == -1) + return tdb->last_error; + return TDB_SUCCESS; + } + if (tdb->tdb2.transaction == NULL) { return tdb->last_error = tdb_logerr(tdb, TDB_ERR_EINVAL, TDB_LOG_USE_ERROR,