From 9684befa164ac007df9068929545fac61e05861f Mon Sep 17 00:00:00 2001
From: Ronnie Sahlberg <sahlberg@samba.org>
Date: Thu, 10 Apr 2008 14:45:45 +1000
Subject: [PATCH] Revert "- accept an optional set of tdb_flags from clients on
 open a database,"

This reverts commit 49330f97c78ca0669615297ac3d8498651831214.

(This used to be ctdb commit 171d1d71ef9f2373620bd7da3adaecb405338603)
---
 ctdb/common/ctdb_ltdb.c        | 20 +-------------------
 ctdb/include/ctdb_private.h    |  3 +--
 ctdb/server/ctdb_control.c     |  4 ++--
 ctdb/server/ctdb_ltdb_server.c | 13 +------------
 4 files changed, 5 insertions(+), 35 deletions(-)

diff --git a/ctdb/common/ctdb_ltdb.c b/ctdb/common/ctdb_ltdb.c
index d9e4f2ab74e..e8a334afeca 100644
--- a/ctdb/common/ctdb_ltdb.c
+++ b/ctdb/common/ctdb_ltdb.c
@@ -150,25 +150,7 @@ int ctdb_ltdb_store(struct ctdb_db_context *ctdb_db, TDB_DATA key,
 	memcpy(rec.dptr, header, sizeof(*header));
 	memcpy(rec.dptr + sizeof(*header), data.dptr, data.dsize);
 
-	/* if this is a persistent database without NOSYNC then we
-	   will do this via a transaction */
-	if (ctdb_db->persistent && !(ctdb_db->client_tdb_flags & TDB_NOSYNC)) {
-		ret = tdb_transaction_start(ctdb_db->ltdb->tdb);
-		if (ret != 0) {
-			DEBUG(DEBUG_CRIT, ("Failed to start local transaction\n"));
-			goto failed;
-		}
-		ret = tdb_store(ctdb_db->ltdb->tdb, key, rec, TDB_REPLACE);
-		if (ret != 0) {
-			tdb_transaction_cancel(ctdb_db->ltdb->tdb);
-			goto failed;
-		}
-		ret = tdb_transaction_commit(ctdb_db->ltdb->tdb);
-	} else {
-		ret = tdb_store(ctdb_db->ltdb->tdb, key, rec, TDB_REPLACE);
-	}
-
-failed:
+	ret = tdb_store(ctdb_db->ltdb->tdb, key, rec, TDB_REPLACE);
 	talloc_free(rec.dptr);
 
 	return ret;
diff --git a/ctdb/include/ctdb_private.h b/ctdb/include/ctdb_private.h
index d51e2f7f48f..2435b0f4a95 100644
--- a/ctdb/include/ctdb_private.h
+++ b/ctdb/include/ctdb_private.h
@@ -400,7 +400,6 @@ struct ctdb_db_context {
 	struct ctdb_registered_call *calls; /* list of registered calls */
 	uint32_t seqnum;
 	struct timed_event *te;
-	uint32_t client_tdb_flags;
 };
 
 
@@ -911,7 +910,7 @@ int ctdb_daemon_send_control(struct ctdb_context *ctdb, uint32_t destnode,
 			     void *private_data);
 
 int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, TDB_DATA indata, 
-			       TDB_DATA *outdata, uint64_t tdb_flags, bool persistent);
+			       TDB_DATA *outdata, bool persistent);
 
 int ctdb_daemon_set_call(struct ctdb_context *ctdb, uint32_t db_id,
 			 ctdb_fn_t fn, int id);
diff --git a/ctdb/server/ctdb_control.c b/ctdb/server/ctdb_control.c
index 4de27305da2..9097854e36c 100644
--- a/ctdb/server/ctdb_control.c
+++ b/ctdb/server/ctdb_control.c
@@ -206,10 +206,10 @@ static int32_t ctdb_control_dispatch(struct ctdb_context *ctdb,
 	}
 
 	case CTDB_CONTROL_DB_ATTACH:
-		return ctdb_control_db_attach(ctdb, indata, outdata, srvid, false);
+		return ctdb_control_db_attach(ctdb, indata, outdata, false);
 
 	case CTDB_CONTROL_DB_ATTACH_PERSISTENT:
-		return ctdb_control_db_attach(ctdb, indata, outdata, srvid, true);
+		return ctdb_control_db_attach(ctdb, indata, outdata, true);
 
 	case CTDB_CONTROL_SET_CALL: {
 		struct ctdb_control_set_call *sc = 
diff --git a/ctdb/server/ctdb_ltdb_server.c b/ctdb/server/ctdb_ltdb_server.c
index 5146ed86dae..e900f7b9ca8 100644
--- a/ctdb/server/ctdb_ltdb_server.c
+++ b/ctdb/server/ctdb_ltdb_server.c
@@ -296,19 +296,12 @@ static int ctdb_local_attach(struct ctdb_context *ctdb, const char *db_name, boo
   a client has asked to attach a new database
  */
 int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, TDB_DATA indata,
-			       TDB_DATA *outdata, uint64_t tdb_flags, 
-			       bool persistent)
+			       TDB_DATA *outdata, bool persistent)
 {
 	const char *db_name = (const char *)indata.dptr;
 	struct ctdb_db_context *db;
 	struct ctdb_node *node = ctdb->nodes[ctdb->pnn];
 
-	/* the client can optionally pass additional tdb flags, but we
-	   only allow a subset of those on the database in ctdb. Note
-	   that tdb_flags is passed in via the (otherwise unused)
-	   srvid to the attach control */
-	tdb_flags &= TDB_NOSYNC;
-
 	/* If the node is inactive it is not part of the cluster
 	   and we should not allow clients to attach to any
 	   databases
@@ -324,7 +317,6 @@ int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, TDB_DATA indata,
 	if (db) {
 		outdata->dptr  = (uint8_t *)&db->db_id;
 		outdata->dsize = sizeof(db->db_id);
-		db->client_tdb_flags |= tdb_flags;
 		return 0;
 	}
 
@@ -338,9 +330,6 @@ int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, TDB_DATA indata,
 		return -1;
 	}
 
-	/* remember the flags the client has specified */
-	db->client_tdb_flags = tdb_flags;
-
 	outdata->dptr  = (uint8_t *)&db->db_id;
 	outdata->dsize = sizeof(db->db_id);