diff options
author | Michael Adam <obnox@samba.org> | 2010-12-30 18:19:32 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2011-03-14 13:35:50 +0100 |
commit | 9e8d6b82b5c4f67fb08b08887748266dafb70508 (patch) | |
tree | 539bf9ad15a62742452f990100d97f8cafdf365a | |
parent | 7948be380cabafab0b4f0a1a26a3b05d8fa1a0d6 (diff) | |
download | samba-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.c | 4 | ||||
-rw-r--r-- | ctdb/include/ctdb_private.h | 5 | ||||
-rw-r--r-- | ctdb/server/ctdb_ltdb_server.c | 2 |
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 */ |