diff options
author | Martin Schwenke <martin@meltin.net> | 2016-06-01 17:10:26 +1000 |
---|---|---|
committer | Martin Schwenke <martins@samba.org> | 2016-06-08 00:51:29 +0200 |
commit | 145ddcbe37e274aaa1ddbe77acef3129c486c1b0 (patch) | |
tree | 2e055769e83a25ea578481a7424212735aa3b4b7 /ctdb/server/ctdb_recover.c | |
parent | 8cf74f335e442733cbcc02cf33eaa2226b70a8a5 (diff) | |
download | samba-145ddcbe37e274aaa1ddbe77acef3129c486c1b0.tar.gz |
ctdb-cluster-mutex: Drop cluster_mutex_handler() ctdb and handle arguments
This makes the API more general. If they are needed in a handler then
they can be in the private data.
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Diffstat (limited to 'ctdb/server/ctdb_recover.c')
-rw-r--r-- | ctdb/server/ctdb_recover.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/ctdb/server/ctdb_recover.c b/ctdb/server/ctdb_recover.c index 94732a8c5d5..1742e34bb26 100644 --- a/ctdb/server/ctdb_recover.c +++ b/ctdb/server/ctdb_recover.c @@ -750,13 +750,12 @@ int32_t ctdb_control_db_push_confirm(struct ctdb_context *ctdb, } struct set_recmode_state { + struct ctdb_context *ctdb; struct ctdb_req_control_old *c; }; -static void set_recmode_handler(struct ctdb_context *ctdb, - char status, +static void set_recmode_handler(char status, double latency, - struct ctdb_cluster_mutex_handle *h, void *private_data) { struct set_recmode_state *state = talloc_get_type_abort( @@ -769,7 +768,7 @@ static void set_recmode_handler(struct ctdb_context *ctdb, /* Mutex taken */ DEBUG(DEBUG_ERR, ("ERROR: Daemon able to take recovery lock on \"%s\" during recovery\n", - ctdb->recovery_lock)); + state->ctdb->recovery_lock)); s = -1; err = "Took recovery lock from daemon during recovery - probably a cluster filesystem lock coherence problem"; break; @@ -777,12 +776,12 @@ static void set_recmode_handler(struct ctdb_context *ctdb, case '1': /* Contention */ DEBUG(DEBUG_DEBUG, (__location__ " Recovery lock check OK\n")); - ctdb->recovery_mode = CTDB_RECOVERY_NORMAL; - ctdb_process_deferred_attach(ctdb); + state->ctdb->recovery_mode = CTDB_RECOVERY_NORMAL; + ctdb_process_deferred_attach(state->ctdb); s = 0; - CTDB_UPDATE_RECLOCK_LATENCY(ctdb, "daemon reclock", + CTDB_UPDATE_RECLOCK_LATENCY(state->ctdb, "daemon reclock", reclock.ctdbd, latency); break; @@ -795,8 +794,8 @@ static void set_recmode_handler(struct ctdb_context *ctdb, DEBUG(DEBUG_WARNING, (__location__ "Time out getting recovery lock, allowing recmode set anyway\n")); - ctdb->recovery_mode = CTDB_RECOVERY_NORMAL; - ctdb_process_deferred_attach(ctdb); + state->ctdb->recovery_mode = CTDB_RECOVERY_NORMAL; + ctdb_process_deferred_attach(state->ctdb); s = 0; break; @@ -808,7 +807,7 @@ static void set_recmode_handler(struct ctdb_context *ctdb, err = "Unexpected error when testing recovery lock"; } - ctdb_request_control_reply(ctdb, state->c, NULL, s, err); + ctdb_request_control_reply(state->ctdb, state->c, NULL, s, err); talloc_free(state); } @@ -914,6 +913,7 @@ int32_t ctdb_control_set_recmode(struct ctdb_context *ctdb, DEBUG(DEBUG_ERR, (__location__ " out of memory\n")); return -1; } + state->ctdb = ctdb; state->c = NULL; h = ctdb_cluster_mutex(state, ctdb, ctdb->recovery_lock, 5); |