enum TDB_ERROR ecode;
recovery_head = tdb_read_off(tdb, offsetof(struct tdb_header,recovery));
- if (recovery_head == TDB_OFF_ERR) {
- tdb_logerr(tdb, tdb->ecode, TDB_LOG_ERROR,
+ if (TDB_OFF_IS_ERR(recovery_head)) {
+ tdb_logerr(tdb, recovery_head, TDB_LOG_ERROR,
"tdb_recovery_allocate:"
" failed to read recovery head");
return -1;
the transaction) */
if (recovery_head != 0) {
add_stat(tdb, frees, 1);
- if (add_free_record(tdb, recovery_head,
- sizeof(rec) + rec.max_len) != 0) {
- tdb_logerr(tdb, tdb->ecode, TDB_LOG_ERROR,
+ ecode = add_free_record(tdb, recovery_head,
+ sizeof(rec) + rec.max_len);
+ if (ecode != TDB_SUCCESS) {
+ tdb_logerr(tdb, ecode, TDB_LOG_ERROR,
"tdb_recovery_allocate:"
" failed to free previous recovery area");
return -1;
/* find the recovery area */
recovery_head = tdb_read_off(tdb, offsetof(struct tdb_header,recovery));
- if (recovery_head == TDB_OFF_ERR) {
- tdb_logerr(tdb, tdb->ecode, TDB_LOG_ERROR,
+ if (TDB_OFF_IS_ERR(recovery_head)) {
+ tdb_logerr(tdb, recovery_head, TDB_LOG_ERROR,
"tdb_transaction_recover:"
" failed to read recovery head");
return -1;
}
/* read the recovery record */
- if (tdb_read_convert(tdb, recovery_head, &rec, sizeof(rec)) == -1) {
- tdb_logerr(tdb, tdb->ecode, TDB_LOG_ERROR,
+ ecode = tdb_read_convert(tdb, recovery_head, &rec, sizeof(rec));
+ if (ecode != TDB_SUCCESS) {
+ tdb_logerr(tdb, ecode, TDB_LOG_ERROR,
"tdb_transaction_recover:"
" failed to read recovery record");
return -1;
/* if the recovery area is after the recovered eof then remove it */
if (recovery_eof <= recovery_head) {
- if (tdb_write_off(tdb, offsetof(struct tdb_header,recovery), 0)
- == -1) {
- tdb_logerr(tdb, tdb->ecode, TDB_LOG_ERROR,
+ ecode = tdb_write_off(tdb, offsetof(struct tdb_header,
+ recovery),
+ 0);
+ if (ecode != TDB_SUCCESS) {
+ tdb_logerr(tdb, ecode, TDB_LOG_ERROR,
"tdb_transaction_recover:"
" failed to remove recovery head");
return -1;
}
/* remove the recovery magic */
- if (tdb_write_off(tdb,
- recovery_head
- + offsetof(struct tdb_recovery_record, magic),
- TDB_RECOVERY_INVALID_MAGIC) == -1) {
- tdb_logerr(tdb, tdb->ecode, TDB_LOG_ERROR,
+ ecode = tdb_write_off(tdb,
+ recovery_head
+ + offsetof(struct tdb_recovery_record, magic),
+ TDB_RECOVERY_INVALID_MAGIC);
+ if (ecode != TDB_SUCCESS) {
+ tdb_logerr(tdb, ecode, TDB_LOG_ERROR,
"tdb_transaction_recover:"
" failed to remove recovery magic");
return -1;
{
tdb_off_t recovery_head;
struct tdb_recovery_record rec;
+ enum TDB_ERROR ecode;
/* find the recovery area */
recovery_head = tdb_read_off(tdb, offsetof(struct tdb_header,recovery));
- if (recovery_head == TDB_OFF_ERR) {
+ if (TDB_OFF_IS_ERR(recovery_head)) {
+ tdb->ecode = recovery_head;
return true;
}
}
/* read the recovery record */
- if (tdb_read_convert(tdb, recovery_head, &rec, sizeof(rec)) == -1) {
+ ecode = tdb_read_convert(tdb, recovery_head, &rec, sizeof(rec));
+ if (ecode != TDB_SUCCESS) {
+ tdb->ecode = ecode;
return true;
}