]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-daemon: Drop implementation of global transaction controls
authorAmitay Isaacs <amitay@gmail.com>
Mon, 25 Jul 2016 05:41:34 +0000 (15:41 +1000)
committerStefan Metzmacher <metze@samba.org>
Thu, 28 Jul 2016 03:00:17 +0000 (05:00 +0200)
These were used in serial recovery and for restoring databases using
older ctdb tool.  New code uses database specific transaction controls.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/include/ctdb_private.h
ctdb/server/ctdb_control.c
ctdb/server/ctdb_freeze.c

index 5d7275e5bb8da9d3c0acfcb46e14d88532ab51a8..cf30efdddcf53abcf4e808b77feb3936a8574d0d 100644 (file)
@@ -635,10 +635,6 @@ int32_t ctdb_control_db_transaction_cancel(struct ctdb_context *ctdb,
 int32_t ctdb_control_db_transaction_commit(struct ctdb_context *ctdb,
                                           TDB_DATA indata);
 
-int32_t ctdb_control_transaction_start(struct ctdb_context *ctdb, uint32_t id);
-int32_t ctdb_control_transaction_cancel(struct ctdb_context *ctdb);
-int32_t ctdb_control_transaction_commit(struct ctdb_context *ctdb, uint32_t id);
-
 int32_t ctdb_control_wipe_database(struct ctdb_context *ctdb, TDB_DATA indata);
 
 bool ctdb_db_frozen(struct ctdb_db_context *ctdb_db);
index ea68bbfade41daeb2cd512c796dafbdd2ebcf423..f01815c93b14351f242cf71c7f0b85f6816b6bc9 100644 (file)
@@ -439,12 +439,10 @@ static int32_t ctdb_control_dispatch(struct ctdb_context *ctdb,
                return ctdb_control_send_gratious_arp(ctdb, indata);
 
        case CTDB_CONTROL_TRANSACTION_START:
-               CHECK_CONTROL_DATA_SIZE(sizeof(uint32_t));
-               return ctdb_control_transaction_start(ctdb, *(uint32_t *)indata.dptr);
+               return control_not_implemented("TRANSACTION_START", NULL);
 
        case CTDB_CONTROL_TRANSACTION_COMMIT:
-               CHECK_CONTROL_DATA_SIZE(sizeof(uint32_t));
-               return ctdb_control_transaction_commit(ctdb, *(uint32_t *)indata.dptr);
+               return control_not_implemented("TRANSACTION_COMMIT", NULL);
 
        case CTDB_CONTROL_WIPE_DATABASE:
                CHECK_CONTROL_DATA_SIZE(sizeof(struct ctdb_transdb));
@@ -573,8 +571,7 @@ static int32_t ctdb_control_dispatch(struct ctdb_context *ctdb,
                return control_not_implemented("GET_DB_PRIORITY", "");
 
        case CTDB_CONTROL_TRANSACTION_CANCEL:
-               CHECK_CONTROL_DATA_SIZE(0);
-               return ctdb_control_transaction_cancel(ctdb);
+               return control_not_implemented("TRANSACTION_CANCEL", NULL);
 
        case CTDB_CONTROL_REGISTER_NOTIFY:
                return ctdb_control_register_notify(ctdb, client_id, indata);
index f198652065af63220f649305ab1acea36183ad06..2666013744b5b4dde795b0ca3d5dddff44d59686 100644 (file)
@@ -810,106 +810,6 @@ int32_t ctdb_control_db_transaction_commit(struct ctdb_context *ctdb,
        return db_commit_transaction(ctdb_db, &state);
 }
 
-/*
-  start a transaction on all databases - used for recovery
- */
-int32_t ctdb_control_transaction_start(struct ctdb_context *ctdb, uint32_t id)
-{
-       struct db_start_transaction_state state;
-       int ret;
-
-       if (!ctdb_db_all_frozen(ctdb)) {
-               DEBUG(DEBUG_ERR, (__location__
-                     " failing transaction start while not frozen\n"));
-               return -1;
-       }
-
-       state.transaction_id = id;
-       state.transaction_started = ctdb->freeze_transaction_started;
-
-       ret = ctdb_db_iterator(ctdb, db_start_transaction, &state);
-       if (ret != 0) {
-               return -1;
-       }
-
-       ctdb->freeze_transaction_started = true;
-       ctdb->freeze_transaction_id = id;
-
-       return 0;
-}
-
-/*
-  cancel a transaction for all databases - used for recovery
- */
-int32_t ctdb_control_transaction_cancel(struct ctdb_context *ctdb)
-{
-       DEBUG(DEBUG_ERR,(__location__ " recovery transaction cancelled called\n"));
-
-       ctdb_db_iterator(ctdb, db_cancel_transaction, NULL);
-
-       ctdb->freeze_transaction_started = false;
-
-       return 0;
-}
-
-/*
-  commit transactions on all databases
- */
-int32_t ctdb_control_transaction_commit(struct ctdb_context *ctdb, uint32_t id)
-{
-       struct db_commit_transaction_state state;
-       int i;
-       int healthy_nodes = 0;
-       int ret;
-
-       if (!ctdb_db_all_frozen(ctdb)) {
-               DEBUG(DEBUG_ERR, (__location__
-                     " failing transaction commit while not frozen\n"));
-               return -1;
-       }
-
-       if (!ctdb->freeze_transaction_started) {
-               DEBUG(DEBUG_ERR,(__location__ " transaction not started\n"));
-               return -1;
-       }
-
-       if (id != ctdb->freeze_transaction_id) {
-               DEBUG(DEBUG_ERR,(__location__ " incorrect transaction id 0x%x in commit\n", id));
-               return -1;
-       }
-
-       DEBUG(DEBUG_DEBUG,(__location__ " num_nodes[%d]\n", ctdb->num_nodes));
-       for (i=0; i < ctdb->num_nodes; i++) {
-               DEBUG(DEBUG_DEBUG,(__location__ " node[%d].flags[0x%X]\n",
-                                  i, ctdb->nodes[i]->flags));
-               if (ctdb->nodes[i]->flags == 0) {
-                       healthy_nodes++;
-               }
-       }
-       DEBUG(DEBUG_INFO,(__location__ " healthy_nodes[%d]\n", healthy_nodes));
-
-       state.transaction_id = id;
-       state.healthy_nodes = healthy_nodes;
-
-       ret = ctdb_db_iterator(ctdb, db_commit_transaction, &state);
-       if (ret != 0) {
-               DEBUG(DEBUG_ERR, ("Cancel all transactions\n"));
-               goto fail;
-       }
-
-       ctdb->freeze_transaction_started = false;
-       ctdb->freeze_transaction_id = 0;
-
-       return 0;
-
-fail:
-       /* cancel any pending transactions */
-       ctdb_db_iterator(ctdb, db_cancel_transaction, NULL);
-       ctdb->freeze_transaction_started = false;
-
-       return -1;
-}
-
 /*
   wipe a database - only possible when in a frozen transaction
  */