diff options
| author | Amitay Isaacs <amitay@gmail.com> | 2013-04-30 14:07:11 +1000 |
|---|---|---|
| committer | Amitay Isaacs <amitay@gmail.com> | 2013-05-24 09:06:39 +1000 |
| commit | ed359bb1ead0bcd35963ff1bf55442f0ef5783cc (patch) | |
| tree | 83b19b31e4276baacfbf45fcfd7051ea89b23d5e | |
| parent | c5c79d63f2e51f1e38dc48880d2cb02bbd5312be (diff) | |
| download | samba-ed359bb1ead0bcd35963ff1bf55442f0ef5783cc.tar.gz samba-ed359bb1ead0bcd35963ff1bf55442f0ef5783cc.tar.xz samba-ed359bb1ead0bcd35963ff1bf55442f0ef5783cc.zip | |
locking: Add handler function for marking a database
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
(This used to be ctdb commit f120e40533780e02ff1cdc41cc6d3af1c4c83258)
| -rw-r--r-- | ctdb/server/ctdb_lock.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ctdb/server/ctdb_lock.c b/ctdb/server/ctdb_lock.c index f6220e0203..68409e7c85 100644 --- a/ctdb/server/ctdb_lock.c +++ b/ctdb/server/ctdb_lock.c @@ -242,6 +242,29 @@ static int ctdb_unlockall(struct ctdb_context *ctdb) /* * lock all databases - mark only */ +static int db_lock_mark_handler(struct ctdb_db_context *ctdb_db, uint32_t priority, + void *private_data) +{ + int tdb_transaction_write_lock_mark(struct tdb_context *); + + DEBUG(DEBUG_INFO, ("marking locked database %s, priority:%u\n", + ctdb_db->db_name, priority)); + + if (tdb_transaction_write_lock_mark(ctdb_db->ltdb->tdb) != 0) { + DEBUG(DEBUG_ERR, ("Failed to mark (transaction lock) database %s\n", + ctdb_db->db_name)); + return -1; + } + + if (tdb_lockall_mark(ctdb_db->ltdb->tdb) != 0) { + DEBUG(DEBUG_ERR, ("Failed to mark (all lock) database %s\n", + ctdb_db->db_name)); + return -1; + } + + return 0; +} + int ctdb_lockall_mark_prio(struct ctdb_context *ctdb, uint32_t priority) { struct ctdb_db_context *ctdb_db; |
