From f08b323a88658c3e52adce4fa346bc03274e2c36 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 21 Sep 2011 12:57:59 +0930 Subject: tdb_compat: honour hashsize arg when using tdb2 with TDB_VERSION1 flag. We use the TDB_ATTRIBUTE_TDB1_HASHSIZE to set the hash size. Signed-off-by: Rusty Russell --- lib/tdb_compat/tdb_compat.c | 11 +++++++++-- lib/tdb_compat/tdb_compat.h | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'lib/tdb_compat') diff --git a/lib/tdb_compat/tdb_compat.c b/lib/tdb_compat/tdb_compat.c index f311b4bfba..d5d8f09c64 100644 --- a/lib/tdb_compat/tdb_compat.c +++ b/lib/tdb_compat/tdb_compat.c @@ -85,7 +85,7 @@ static enum TDB_ERROR clear_if_first(int fd, void *unused) } struct tdb_context * -tdb_open_compat_(const char *name, int hash_size_unused, +tdb_open_compat_(const char *name, int hash_size, int tdb_flags, int open_flags, mode_t mode, void (*log_fn)(struct tdb_context *, enum tdb_log_level, @@ -94,7 +94,7 @@ tdb_open_compat_(const char *name, int hash_size_unused, void *data), void *log_data) { - union tdb_attribute cif, log, hash, max_dead, *attr = NULL; + union tdb_attribute cif, log, hash, max_dead, hsize, *attr = NULL; if (log_fn) { log.log.base.attr = TDB_ATTRIBUTE_LOG; @@ -132,6 +132,13 @@ tdb_open_compat_(const char *name, int hash_size_unused, tdb_flags &= ~TDB_VOLATILE; } + if (hash_size && (tdb_flags & TDB_VERSION1)) { + hsize.base.attr = TDB_ATTRIBUTE_TDB1_HASHSIZE; + hsize.base.next = attr; + hsize.tdb1_hashsize.hsize = hash_size; + attr = &hsize; + } + /* Testsuite uses this to speed things up. */ if (getenv("TDB_NO_FSYNC")) { tdb_flags |= TDB_NOSYNC; diff --git a/lib/tdb_compat/tdb_compat.h b/lib/tdb_compat/tdb_compat.h index cc120bbcb6..0d58075c80 100644 --- a/lib/tdb_compat/tdb_compat.h +++ b/lib/tdb_compat/tdb_compat.h @@ -100,7 +100,7 @@ enum TDB_ERROR tdb_transaction_start_nonblock(struct tdb_context *tdb); (log_data)) struct tdb_context * -tdb_open_compat_(const char *name, int hash_size_unused, +tdb_open_compat_(const char *name, int hash_size, int tdb_flags, int open_flags, mode_t mode, void (*log_fn)(struct tdb_context *, enum tdb_log_level, -- cgit