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"
"tdb1_transaction_prepare_commit:"
" failed to upgrade hash locks");
}
- _tdb1_transaction_cancel(tdb);
return -1;
}
"tdb1_transaction_prepare_commit:"
" failed to get open lock");
}
- _tdb1_transaction_cancel(tdb);
return -1;
}
tdb_logerr(tdb, tdb->last_error, TDB_LOG_ERROR,
"tdb1_transaction_prepare_commit:"
" failed to setup recovery data");
- _tdb1_transaction_cancel(tdb);
return -1;
}
}
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;
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;
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"