struct tdb_free_record rec;
enum TDB_ERROR ecode;
- add_stat(tdb, alloc_coalesce_tried, 1);
+ tdb->stats.alloc_coalesce_tried++;
end = off + sizeof(struct tdb_used_record) + data_len;
while (end < tdb->file->map_size) {
/* We may be violating lock order here, so best effort. */
if (tdb_lock_free_bucket(tdb, nb_off, TDB_LOCK_NOWAIT)
!= TDB_SUCCESS) {
- add_stat(tdb, alloc_coalesce_lockfail, 1);
+ tdb->stats.alloc_coalesce_lockfail++;
break;
}
}
if (unlikely(frec_magic(&rec) != TDB_FREE_MAGIC)) {
- add_stat(tdb, alloc_coalesce_race, 1);
+ tdb->stats.alloc_coalesce_race++;
tdb_unlock_free_bucket(tdb, nb_off);
break;
}
if (unlikely(frec_ftable(&rec) != ftable)
|| unlikely(size_to_bucket(frec_len(&rec)) != bucket)) {
- add_stat(tdb, alloc_coalesce_race, 1);
+ tdb->stats.alloc_coalesce_race++;
tdb_unlock_free_bucket(tdb, nb_off);
break;
}
end += sizeof(struct tdb_used_record) + frec_len(&rec);
tdb_unlock_free_bucket(tdb, nb_off);
- add_stat(tdb, alloc_coalesce_num_merged, 1);
+ tdb->stats.alloc_coalesce_num_merged++;
}
/* Didn't find any adjacent free? */
goto err;
}
- add_stat(tdb, alloc_coalesce_succeeded, 1);
+ tdb->stats.alloc_coalesce_succeeded++;
tdb_unlock_free_bucket(tdb, b_off);
ecode = add_free_record(tdb, off, end - off);
size_t size = adjust_size(keylen, datalen);
enum TDB_ERROR ecode;
- add_stat(tdb, allocs, 1);
+ tdb->stats.allocs++;
again:
b_off = bucket_off(ftable_off, bucket);
/* Bucket of leftover will be <= current bucket, so nested
* locking is allowed. */
if (leftover) {
- add_stat(tdb, alloc_leftover, 1);
+ tdb->stats.alloc_leftover++;
ecode = add_free_record(tdb,
best_off + sizeof(rec)
+ frec_len(&best) - leftover,
return off;
if (off != 0) {
if (b == start_b)
- add_stat(tdb, alloc_bucket_exact, 1);
+ tdb->stats.alloc_bucket_exact++;
if (b == TDB_FREE_BUCKETS - 1)
- add_stat(tdb, alloc_bucket_max, 1);
+ tdb->stats.alloc_bucket_max++;
/* Worked? Stay using this list. */
tdb->ftable_off = ftable_off;
tdb->ftable = ftable;
/* We need to drop this lock before adding free record. */
tdb_unlock_expand(tdb, F_WRLCK);
- add_stat(tdb, expands, 1);
+ tdb->stats.expands++;
return add_free_record(tdb, old_size, wanted);
}