summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2010-12-30 18:19:32 +0100
committerMichael Adam <obnox@samba.org>2011-03-14 13:35:50 +0100
commit9e8d6b82b5c4f67fb08b08887748266dafb70508 (patch)
tree539bf9ad15a62742452f990100d97f8cafdf365a
parent7948be380cabafab0b4f0a1a26a3b05d8fa1a0d6 (diff)
downloadsamba-9e8d6b82b5c4f67fb08b08887748266dafb70508.tar.gz
samba-9e8d6b82b5c4f67fb08b08887748266dafb70508.tar.xz
samba-9e8d6b82b5c4f67fb08b08887748266dafb70508.zip
server: Use the ctdb_ltdb_store_server() in the ctdb daemon for non-persistent dbs
This is realized by adding a ctdb_ltdb_store_fn function pointer to the db context and filling it in the attach procedure for non-persistent dbs. (This used to be ctdb commit df49ec44de80affa5ccc637dec12a20a26e8706e)
-rw-r--r--ctdb/common/ctdb_ltdb.c4
-rw-r--r--ctdb/include/ctdb_private.h5
-rw-r--r--ctdb/server/ctdb_ltdb_server.c2
3 files changed, 11 insertions, 0 deletions
diff --git a/ctdb/common/ctdb_ltdb.c b/ctdb/common/ctdb_ltdb.c
index 200cca41dc..b5e586568c 100644
--- a/ctdb/common/ctdb_ltdb.c
+++ b/ctdb/common/ctdb_ltdb.c
@@ -129,6 +129,10 @@ int ctdb_ltdb_store(struct ctdb_db_context *ctdb_db, TDB_DATA key,
int ret;
bool seqnum_suppressed = false;
+ if (ctdb_db->ctdb_ltdb_store_fn) {
+ return ctdb_db->ctdb_ltdb_store_fn(ctdb_db, key, header, data);
+ }
+
if (ctdb->flags & CTDB_FLAG_TORTURE) {
struct ctdb_ltdb_header *h2;
rec = tdb_fetch(ctdb_db->ltdb->tdb, key);
diff --git a/ctdb/include/ctdb_private.h b/ctdb/include/ctdb_private.h
index e3f77e905e..396427bfa6 100644
--- a/ctdb/include/ctdb_private.h
+++ b/ctdb/include/ctdb_private.h
@@ -516,6 +516,11 @@ struct ctdb_db_context {
struct lockwait_handle *lockwait_overflow;
struct ctdb_persistent_state *persistent_state;
struct trbt_tree *delete_queue;
+ int (*ctdb_ltdb_store_fn)(struct ctdb_db_context *ctdb_db,
+ TDB_DATA key,
+ struct ctdb_ltdb_header *header,
+ TDB_DATA data);
+
};
diff --git a/ctdb/server/ctdb_ltdb_server.c b/ctdb/server/ctdb_ltdb_server.c
index 8de6ad2f8e..c00a048246 100644
--- a/ctdb/server/ctdb_ltdb_server.c
+++ b/ctdb/server/ctdb_ltdb_server.c
@@ -604,6 +604,8 @@ static int ctdb_local_attach(struct ctdb_context *ctdb, const char *db_name,
if (ctdb_db->delete_queue == NULL) {
CTDB_NO_MEMORY(ctdb, ctdb_db->delete_queue);
}
+
+ ctdb_db->ctdb_ltdb_store_fn = ctdb_ltdb_store_server;
}
/* check for hash collisions */