X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Ftdb1_transaction.c;h=cf77a35996d5543df258d0237e4682c0ac5f2d31;hb=4dc29a338fadeac805b369b4b0851c02f1b152c7;hp=9c526fb41e5d194fa10dcf2d910022881a3fc3ae;hpb=a391b2b900bc6d5c0467869a454bdb5c51b5a3be;p=ccan diff --git a/ccan/tdb2/tdb1_transaction.c b/ccan/tdb2/tdb1_transaction.c index 9c526fb4..cf77a359 100644 --- a/ccan/tdb2/tdb1_transaction.c +++ b/ccan/tdb2/tdb1_transaction.c @@ -418,7 +418,7 @@ static const struct tdb1_methods transaction1_methods = { static int _tdb1_transaction_start(struct tdb1_context *tdb) { /* some sanity checks */ - if (tdb->read_only || (tdb->flags & TDB_INTERNAL) || tdb->traverse_read) { + if ((tdb->flags & TDB_RDONLY) || (tdb->flags & TDB_INTERNAL) || tdb->traverse_read) { tdb->last_error = tdb_logerr(tdb, TDB_ERR_EINVAL, TDB_LOG_USE_ERROR, "tdb1_transaction_start: cannot start a" " transaction on a read-only or" @@ -963,7 +963,6 @@ static int _tdb1_transaction_prepare_commit(struct tdb1_context *tdb) "tdb1_transaction_prepare_commit:" " failed to upgrade hash locks"); } - _tdb1_transaction_cancel(tdb); return -1; } @@ -975,7 +974,6 @@ static int _tdb1_transaction_prepare_commit(struct tdb1_context *tdb) "tdb1_transaction_prepare_commit:" " failed to get open lock"); } - _tdb1_transaction_cancel(tdb); return -1; } @@ -985,7 +983,6 @@ static int _tdb1_transaction_prepare_commit(struct tdb1_context *tdb) tdb_logerr(tdb, tdb->last_error, TDB_LOG_ERROR, "tdb1_transaction_prepare_commit:" " failed to setup recovery data"); - _tdb1_transaction_cancel(tdb); return -1; } } @@ -1000,7 +997,6 @@ static int _tdb1_transaction_prepare_commit(struct tdb1_context *tdb) tdb_logerr(tdb, tdb->last_error, TDB_LOG_ERROR, "tdb1_transaction_prepare_commit:" " expansion failed"); - _tdb1_transaction_cancel(tdb); return -1; } tdb->file->map_size = tdb->transaction->old_map_size; @@ -1080,8 +1076,10 @@ int tdb1_transaction_commit(struct tdb1_context *tdb) if (!tdb->transaction->prepared) { int ret = _tdb1_transaction_prepare_commit(tdb); - if (ret) + if (ret) { + _tdb1_transaction_cancel(tdb); return ret; + } } methods = tdb->transaction->io_methods; @@ -1200,7 +1198,7 @@ int tdb1_transaction_recover(struct tdb1_context *tdb) return 0; } - if (tdb->read_only) { + if (tdb->flags & TDB_RDONLY) { tdb->last_error = tdb_logerr(tdb, TDB_ERR_CORRUPT, TDB_LOG_ERROR, "tdb1_transaction_recover:" " attempt to recover read only"