From c94cba5b7bb0c1cc2cfb0eebc8efe0250de29e0a Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Fri, 20 Jul 2007 14:52:47 +0000 Subject: r23978: Merge r23161 from Samba3: Add TDB_VOLATILE as open_flag to activate the per-hashchain dead record optimization. (This used to be commit 868cdb1781fe94afbc1658e72bf06de20193bcd7) --- source4/lib/tdb/common/open.c | 4 ++++ source4/lib/tdb/include/tdb.h | 1 + 2 files changed, 5 insertions(+) (limited to 'source4/lib') diff --git a/source4/lib/tdb/common/open.c b/source4/lib/tdb/common/open.c index 1985bb75f3..eadb3fd2f3 100644 --- a/source4/lib/tdb/common/open.c +++ b/source4/lib/tdb/common/open.c @@ -164,6 +164,10 @@ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int tdb_flags, tdb->page_size = 0x2000; } + if (open_flags & TDB_VOLATILE) { + tdb->max_dead_records = 5; + } + if ((open_flags & O_ACCMODE) == O_WRONLY) { TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: can't open tdb %s write-only\n", name)); diff --git a/source4/lib/tdb/include/tdb.h b/source4/lib/tdb/include/tdb.h index fb59911ebe..f3a0dbe7bf 100644 --- a/source4/lib/tdb/include/tdb.h +++ b/source4/lib/tdb/include/tdb.h @@ -46,6 +46,7 @@ extern "C" { #define TDB_BIGENDIAN 32 /* header is big-endian (internal use) */ #define TDB_NOSYNC 64 /* don't use synchronous transactions */ #define TDB_SEQNUM 128 /* maintain a sequence number */ +#define TDB_VOLATILE 256 /* Activate the per-hashchain freelist, default 5 */ #define TDB_ERRCODE(code, ret) ((tdb->ecode = (code)), ret) -- cgit