From 3fd0b8a5a55fdaea09ca23bb8f3738f5c70adf7c Mon Sep 17 00:00:00 2001 From: Gregor Beck Date: Thu, 21 Jun 2012 10:26:03 +0200 Subject: ctdbd: refuse attaching with "persistent" to a non-persistent db and v.v. Signed-off-by: Michael Adam (This used to be ctdb commit 1ebbaa620b3cfb9ff373828e4aaa84246cf3ec25) --- ctdb/server/ctdb_ltdb_server.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ctdb/server/ctdb_ltdb_server.c b/ctdb/server/ctdb_ltdb_server.c index 0aa378be09..00d5566dc2 100644 --- a/ctdb/server/ctdb_ltdb_server.c +++ b/ctdb/server/ctdb_ltdb_server.c @@ -1116,6 +1116,12 @@ int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, TDB_DATA indata, /* see if we already have this name */ db = ctdb_db_handle(ctdb, db_name); if (db) { + if (db->persistent != persistent) { + DEBUG(DEBUG_ERR, ("ERROR: DB Attach %spersistent to %spersistent " + "database %s", persistent ? "" : "non-", + db-> persistent ? "" : "non-", db_name)); + return -1; + } outdata->dptr = (uint8_t *)&db->db_id; outdata->dsize = sizeof(db->db_id); tdb_add_flags(db->ltdb->tdb, tdb_flags); -- cgit