summaryrefslogtreecommitdiffstats
path: root/ctdb/server/ctdb_lock.c
diff options
context:
space:
mode:
authorAmitay Isaacs <amitay@gmail.com>2013-04-30 14:14:16 +1000
committerAmitay Isaacs <amitay@gmail.com>2013-05-24 09:06:39 +1000
commitc9f4589c1318ffbbaa0b67038aac43b55b246055 (patch)
tree2c94a95c224a7f57ab636a12304e2a3cb9b977bf /ctdb/server/ctdb_lock.c
parent65a9195916be5bb7f7efe3bac99c960c389b9d01 (diff)
downloadsamba-c9f4589c1318ffbbaa0b67038aac43b55b246055.tar.gz
samba-c9f4589c1318ffbbaa0b67038aac43b55b246055.tar.xz
samba-c9f4589c1318ffbbaa0b67038aac43b55b246055.zip
locking: Use database iterator for unmarking databases
Signed-off-by: Amitay Isaacs <amitay@gmail.com> (This used to be ctdb commit 7630ca4116b476636c27407748088ea335f1a06c)
Diffstat (limited to 'ctdb/server/ctdb_lock.c')
-rw-r--r--ctdb/server/ctdb_lock.c19
1 files changed, 2 insertions, 17 deletions
diff --git a/ctdb/server/ctdb_lock.c b/ctdb/server/ctdb_lock.c
index 30be27bd3f0..db38e0d7c13 100644
--- a/ctdb/server/ctdb_lock.c
+++ b/ctdb/server/ctdb_lock.c
@@ -324,9 +324,6 @@ static int db_lock_unmark_handler(struct ctdb_db_context *ctdb_db, uint32_t prio
int ctdb_lockall_unmark_prio(struct ctdb_context *ctdb, uint32_t priority)
{
- struct ctdb_db_context *ctdb_db;
- int tdb_transaction_write_lock_unmark(struct tdb_context *);
-
/*
* This function is only used by the main dameon during recovery.
* At this stage, the databases have already been locked, by a
@@ -339,19 +336,7 @@ int ctdb_lockall_unmark_prio(struct ctdb_context *ctdb, uint32_t priority)
return -1;
}
- for (ctdb_db = ctdb->db_list; ctdb_db; ctdb_db = ctdb_db->next) {
- if (ctdb_db->priority != priority) {
- continue;
- }
- if (tdb_transaction_write_lock_unmark(ctdb_db->ltdb->tdb) != 0) {
- return -1;
- }
- if (tdb_lockall_unmark(ctdb_db->ltdb->tdb) != 0) {
- return -1;
- }
- }
-
- return 0;
+ return ctdb_db_iterator(ctdb, priority, db_lock_unmark_handler, NULL);
}
static int ctdb_lockall_unmark(struct ctdb_context *ctdb)
@@ -359,7 +344,7 @@ static int ctdb_lockall_unmark(struct ctdb_context *ctdb)
uint32_t priority;
for (priority=NUM_DB_PRIORITIES; priority>=0; priority--) {
- if (ctdb_lockall_unmark_prio(ctdb, priority) != 0) {
+ if (ctdb_db_iterator(ctdb, priority, db_lock_unmark_handler, NULL) != 0) {
return -1;
}
}