unsigned int i, count = 0;
h = tdb_access_read(tdb, hash_off, sizeof(*h) << bits, true);
- if (!h)
+ if (TDB_PTR_IS_ERR(h)) {
+ tdb->ecode = TDB_PTR_ERR(h);
return -1;
+ }
for (i = 0; i < (1 << bits); i++)
count += (h[i] != 0);
} *p;
/* We might not be able to get the whole thing. */
p = tdb_access_read(tdb, off, sizeof(p->f), true);
- if (!p)
+ if (TDB_PTR_IS_ERR(p)) {
+ tdb->ecode = TDB_PTR_ERR(p);
return false;
+ }
if (p->r.magic == TDB_RECOVERY_INVALID_MAGIC
|| p->r.magic == TDB_RECOVERY_MAGIC) {
if (unc) {
*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;
}