Commit 0a97f2dc authored by Rusty Russell's avatar Rusty Russell

tdb: combine dead_space helper from summary.c and check.c

Remove code duplication, and allow unit tests (which #include both).
parent 6535bdee
......@@ -309,7 +309,7 @@ static bool tdb_check_free_record(struct tdb_context *tdb,
}
/* Slow, but should be very rare. */
static size_t dead_space(struct tdb_context *tdb, tdb_off_t off)
size_t tdb_dead_space(struct tdb_context *tdb, tdb_off_t off)
{
size_t len;
......@@ -407,7 +407,7 @@ int tdb_check(struct tdb_context *tdb,
found_recovery = true;
break;
}
dead = dead_space(tdb, off);
dead = tdb_dead_space(tdb, off);
if (dead < sizeof(rec))
goto corrupt;
......
......@@ -37,21 +37,6 @@
#define HISTO_WIDTH 70
#define HISTO_HEIGHT 20
/* Slow, but should be very rare. */
static size_t dead_space(struct tdb_context *tdb, tdb_off_t off)
{
size_t len;
for (len = 0; off + len < tdb->map_size; len++) {
char c;
if (tdb->methods->tdb_read(tdb, off, &c, 1, 0))
return 0;
if (c != 0 && c != 0x42)
break;
}
return len;
}
static size_t get_hash_length(struct tdb_context *tdb, unsigned int i)
{
tdb_off_t rec_ptr;
......@@ -126,7 +111,7 @@ char *tdb_summary(struct tdb_context *tdb, enum tdb_summary_flags flags)
case TDB_RECOVERY_INVALID_MAGIC:
case 0x42424242:
unc++;
rec.rec_len = dead_space(tdb, off) - sizeof(rec);
rec.rec_len = tdb_dead_space(tdb, off) - sizeof(rec);
/* Fall through */
case TDB_DEAD_MAGIC:
tally_add(dead, rec.rec_len);
......
......@@ -304,4 +304,5 @@ int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off,
void tdb_header_hash(struct tdb_context *tdb,
uint32_t *magic1_hash, uint32_t *magic2_hash);
unsigned int tdb_old_hash(TDB_DATA *key);
size_t tdb_dead_space(struct tdb_context *tdb, tdb_off_t off);
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment