From: Rusty Russell Date: Mon, 15 Nov 2010 07:26:57 +0000 (+1030) Subject: tdb2: hoist adjust_size X-Git-Url: http://git.ozlabs.org/?p=ccan;a=commitdiff_plain;h=590eee6faf0d56ac4e7b60a51817d655bb3310cb 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. --- diff --git a/ccan/tdb2/free.c b/ccan/tdb2/free.c index 3ca4e2c3..2b07fdff 100644 --- a/ccan/tdb2/free.c +++ b/ccan/tdb2/free.c @@ -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)