X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Fsummary.c;fp=ccan%2Ftdb2%2Fsummary.c;h=d279131d3eec65561a9e86c3bb6e80412e7aef9b;hp=182738c41f59129e53a59da2c881d8badd703198;hb=850c5cfed46cd4f38df79783791969c7b30ad9da;hpb=50b15fbd060dcf6da9cbc44b8dadc74c3665721c diff --git a/ccan/tdb2/summary.c b/ccan/tdb2/summary.c index 182738c4..d279131d 100644 --- a/ccan/tdb2/summary.c +++ b/ccan/tdb2/summary.c @@ -152,13 +152,19 @@ char *tdb_summary(struct tdb_context *tdb, enum tdb_summary_flags flags) *buckets, *chains; char *hashesg, *freeg, *keysg, *datag, *extrag, *uncoalg, *bucketsg; char *ret = NULL; + enum TDB_ERROR ecode; hashesg = freeg = keysg = datag = extrag = uncoalg = bucketsg = NULL; - if (tdb_allrecord_lock(tdb, F_RDLCK, TDB_LOCK_WAIT, false) != 0) + ecode = tdb_allrecord_lock(tdb, F_RDLCK, TDB_LOCK_WAIT, false); + if (ecode != TDB_SUCCESS) { + tdb->ecode = ecode; return NULL; + } - if (tdb_lock_expand(tdb, F_RDLCK) != 0) { + ecode = tdb_lock_expand(tdb, F_RDLCK); + if (ecode != TDB_SUCCESS) { + tdb->ecode = ecode; tdb_allrecord_unlock(tdb, F_RDLCK); return NULL; }