]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/private.h
tdb2: don't cancel transaction when tdb_transaction_prepare_commit fails
[ccan] / ccan / tdb2 / private.h
index 1e31ec159fbe457cfd570cdf60d6461d62e52dfa..a569b1db3667b05e27e6aaf27fdf0afd02182898 100644 (file)
@@ -35,7 +35,6 @@
 #include <ccan/tdb2/tdb2.h>
 #include <ccan/likely/likely.h>
 #include <ccan/compiler/compiler.h>
-#include <ccan/cast/cast.h>
 #if HAVE_BYTESWAP_H
 #include <byteswap.h>
 #endif
@@ -90,7 +89,7 @@ typedef int tdb_bool_err;
 /* Expanding file. */
 #define TDB_EXPANSION_LOCK 2
 /* Hash chain locks. */
-#define TDB_HASH_LOCK_START 3
+#define TDB_HASH_LOCK_START 64
 
 /* Range for hash locks. */
 #define TDB_HASH_LOCK_RANGE_BITS 30
@@ -336,6 +335,7 @@ struct tdb_file {
        int fd;
 
        /* Lock information */
+       pid_t locker;
        struct tdb_lock allrecord_lock;
        size_t num_lockrecs;
        struct tdb_lock *lockrecs;
@@ -365,15 +365,15 @@ struct tdb_context {
        uint32_t flags;
 
        /* Logging function */
-       void (*logfn)(struct tdb_context *tdb,
-                     enum tdb_log_level level,
-                     void *log_private,
-                     const char *message);
-       void *log_private;
+       void (*log_fn)(struct tdb_context *tdb,
+                      enum tdb_log_level level,
+                      const char *message,
+                      void *data);
+       void *log_data;
 
        /* Hash function. */
-       uint64_t (*khash)(const void *key, size_t len, uint64_t seed, void *);
-       void *hash_priv;
+       uint64_t (*hash_fn)(const void *key, size_t len, uint64_t seed, void *);
+       void *hash_data;
        uint64_t hash_seed;
 
        /* Set if we are in a transaction. */
@@ -550,7 +550,7 @@ enum TDB_ERROR tdb_unlock_hashes(struct tdb_context *tdb,
                                 tdb_len_t hash_range, int ltype);
 
 /* For closing the file. */
-void tdb_unlock_all(struct tdb_context *tdb);
+void tdb_lock_cleanup(struct tdb_context *tdb);
 
 /* Lock/unlock a particular free bucket. */
 enum TDB_ERROR tdb_lock_free_bucket(struct tdb_context *tdb, tdb_off_t b_off,