void *data),
void *log_data)
{
- union tdb_attribute cif, log, hash, *attr = NULL;
+ union tdb_attribute cif, log, hash, max_dead, *attr = NULL;
if (log_fn) {
log.log.base.attr = TDB_ATTRIBUTE_LOG;
tdb_flags &= ~TDB_INCOMPATIBLE_HASH;
}
+ if (tdb_flags & TDB_VOLATILE) {
+ if (tdb_flags & TDB_VERSION1) {
+ max_dead.base.attr = TDB_ATTRIBUTE_TDB1_MAX_DEAD;
+ max_dead.base.next = attr;
+ max_dead.tdb1_max_dead.max_dead = 5;
+ attr = &max_dead;
+ }
+ tdb_flags &= ~TDB_VOLATILE;
+ }
+
/* Testsuite uses this to speed things up. */
if (getenv("TDB_NO_FSYNC")) {
tdb_flags |= TDB_NOSYNC;
/* These no longer exist in tdb2. */
#define TDB_CLEAR_IF_FIRST 1048576
#define TDB_INCOMPATIBLE_HASH 2097152
-#define TDB_VOLATILE 0
+#define TDB_VOLATILE 4194304
/* tdb2 does nonblocking functions via attibutes. */
enum TDB_ERROR tdb_transaction_start_nonblock(struct tdb_context *tdb);