Commit 590eee6f authored by Rusty Russell's avatar Rusty Russell

tdb2: hoist adjust_size

We're going to want it in get_free() in the next patch, so move it upwards.
Trivial changes, too: add to size before min length check, and rename growing
to want_extra.
parent fdba839b
......@@ -240,6 +240,21 @@ int add_free_record(struct tdb_context *tdb,
return ret;
}
static size_t adjust_size(size_t keylen, size_t datalen, bool want_extra)
{
size_t size = keylen + datalen;
/* We want at least 50% growth for data. */
if (want_extra)
size += datalen/2;
if (size < TDB_MIN_DATA_LEN)
size = TDB_MIN_DATA_LEN;
/* Round to next uint64_t boundary. */
return (size + (sizeof(uint64_t) - 1ULL)) & ~(sizeof(uint64_t) - 1ULL);
}
/* If we have enough left over to be useful, split that off. */
static int to_used_record(struct tdb_context *tdb,
unsigned int zone_bits,
......@@ -629,21 +644,6 @@ fail:
return -1;
}
static tdb_len_t adjust_size(size_t keylen, size_t datalen, bool growing)
{
tdb_len_t size = keylen + datalen;
if (size < TDB_MIN_DATA_LEN)
size = TDB_MIN_DATA_LEN;
/* Overallocate if this is coming from an enlarging store. */
if (growing)
size += datalen / 2;
/* Round to next uint64_t boundary. */
return (size + (sizeof(uint64_t) - 1ULL)) & ~(sizeof(uint64_t) - 1ULL);
}
/* This won't fail: it will expand the database if it has to. */
tdb_off_t alloc(struct tdb_context *tdb, size_t keylen, size_t datalen,
uint64_t hash, bool growing)
......
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