]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/tdb.c
tdb2: rework some io.c functions to return enum TDB_ERROR.
[ccan] / ccan / tdb2 / tdb.c
index ba5d37598e68d522366682fb1b59c8c90f8f5412..8079dad7887d89a649d3ec8aa67daf215d0af041 100644 (file)
@@ -413,12 +413,18 @@ static int update_rec_hdr(struct tdb_context *tdb,
                          uint64_t h)
 {
        uint64_t dataroom = rec_data_length(rec) + rec_extra_padding(rec);
+       enum TDB_ERROR ecode;
 
        if (set_header(tdb, rec, TDB_USED_MAGIC, keylen, datalen,
                       keylen + dataroom, h))
                return -1;
 
-       return tdb_write_convert(tdb, off, rec, sizeof(*rec));
+       ecode = tdb_write_convert(tdb, off, rec, sizeof(*rec));
+       if (ecode != TDB_SUCCESS) {
+               tdb->ecode = ecode;
+               return -1;
+       }
+       return 0;
 }
 
 /* Returns -1 on error, 0 on OK */