X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftdb.c;h=8079dad7887d89a649d3ec8aa67daf215d0af041;hp=ba5d37598e68d522366682fb1b59c8c90f8f5412;hb=7d6312518bd3a8e4cbad69b1f6b1800f7bcdf68c;hpb=012f68a0738e2190580f4639321d18ad5f4611c2 diff --git a/ccan/tdb2/tdb.c b/ccan/tdb2/tdb.c index ba5d3759..8079dad7 100644 --- a/ccan/tdb2/tdb.c +++ b/ccan/tdb2/tdb.c @@ -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 */