summaryrefslogtreecommitdiffstats
path: root/ctdb/client
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2009-10-28 22:54:49 +0100
committerRonnie Sahlberg <ronniesahlberg@gmail.com>2009-10-29 10:15:00 +1100
commit953ccee5c5bd49c2d05a77055a53f315d69b40d0 (patch)
treed2a02abb4a1b6b0471cfbeb001d00869e205b692 /ctdb/client
parentabac42ca3445a8e0ba16f2b3190b49f18aba31b0 (diff)
downloadsamba-953ccee5c5bd49c2d05a77055a53f315d69b40d0.tar.gz
samba-953ccee5c5bd49c2d05a77055a53f315d69b40d0.tar.xz
samba-953ccee5c5bd49c2d05a77055a53f315d69b40d0.zip
client: add ctdb_ctrl_transaction_active() which calls out to CTDB_TRANS2_ACTIVE
Michael (This used to be ctdb commit 813cfd7c625ac8af4ef169cc92fb6d69f66004c9)
Diffstat (limited to 'ctdb/client')
-rw-r--r--ctdb/client/ctdb_client.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/ctdb/client/ctdb_client.c b/ctdb/client/ctdb_client.c
index d4130cdf58f..fdbcc0b8ad8 100644
--- a/ctdb/client/ctdb_client.c
+++ b/ctdb/client/ctdb_client.c
@@ -3141,6 +3141,34 @@ int ctdb_ctrl_getcapabilities(struct ctdb_context *ctdb, struct timeval timeout,
return ret;
}
+/**
+ * check whether a transaction is active on a given db on a given node
+ */
+static int32_t ctdb_ctrl_transaction_active(struct ctdb_context *ctdb,
+ uint32_t destnode,
+ uint32_t db_id)
+{
+ int32_t status;
+ int ret;
+ TDB_DATA indata;
+
+ indata.dptr = (uint8_t *)&db_id;
+ indata.dsize = sizeof(db_id);
+
+ ret = ctdb_control(ctdb, destnode, 0,
+ CTDB_CONTROL_TRANS2_ACTIVE,
+ 0, indata, NULL, NULL, &status,
+ NULL, NULL);
+
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR, (__location__ " ctdb control for transaction_active failed\n"));
+ return -1;
+ }
+
+ return status;
+}
+
+
struct ctdb_transaction_handle {
struct ctdb_db_context *ctdb_db;
bool in_replay;