diff options
author | Michael Adam <obnox@samba.org> | 2009-10-28 22:54:49 +0100 |
---|---|---|
committer | Ronnie Sahlberg <ronniesahlberg@gmail.com> | 2009-10-29 10:15:00 +1100 |
commit | 953ccee5c5bd49c2d05a77055a53f315d69b40d0 (patch) | |
tree | d2a02abb4a1b6b0471cfbeb001d00869e205b692 /ctdb/client | |
parent | abac42ca3445a8e0ba16f2b3190b49f18aba31b0 (diff) | |
download | samba-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.c | 28 |
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; |