]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/tdb1_transaction.c
failtest: add --trace to replace --tracepath
[ccan] / ccan / tdb2 / tdb1_transaction.c
index 6e39de33f4c95269d818b0d8150f68b2735b6c2b..411caef360d4ff5e1353b60263e7252d87d9ef1f 100644 (file)
@@ -1174,7 +1174,8 @@ int tdb1_transaction_commit(struct tdb_context *tdb)
        _tdb1_transaction_cancel(tdb);
 
        if (need_repack) {
-               return tdb_repack(tdb);
+               if (tdb_repack(tdb) != 0)
+                       return -1;
        }
 
        return 0;
@@ -1317,7 +1318,7 @@ tdb_bool_err tdb1_needs_recovery(struct tdb_context *tdb)
 
        /* find the recovery area */
        if (tdb1_ofs_read(tdb, TDB1_RECOVERY_HEAD, &recovery_head) == -1) {
-               return tdb->last_error;
+               return TDB_ERR_TO_OFF(tdb->last_error);
        }
 
        if (recovery_head == 0) {
@@ -1328,7 +1329,7 @@ tdb_bool_err tdb1_needs_recovery(struct tdb_context *tdb)
        /* read the recovery record */
        if (tdb->tdb1.io->tdb1_read(tdb, recovery_head, &rec,
                                   sizeof(rec), TDB1_DOCONV()) == -1) {
-               return tdb->last_error;
+               return TDB_ERR_TO_OFF(tdb->last_error);
        }
 
        return (rec.magic == TDB1_RECOVERY_MAGIC);