diff options
Diffstat (limited to 'ctdb/server/ctdb_recover.c')
-rw-r--r-- | ctdb/server/ctdb_recover.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ctdb/server/ctdb_recover.c b/ctdb/server/ctdb_recover.c index 2dbfbd4934..0cbd7dc3e2 100644 --- a/ctdb/server/ctdb_recover.c +++ b/ctdb/server/ctdb_recover.c @@ -630,6 +630,11 @@ static void set_recmode_handler(struct event_context *ev, struct fd_event *fde, state->ctdb->recovery_mode = state->recmode; + /* release any deferred attach calls from clients */ + if (state->recmode == CTDB_RECOVERY_NORMAL) { + ctdb_process_deferred_attach(state->ctdb); + } + ctdb_request_control_reply(state->ctdb, state->c, NULL, 0, NULL); talloc_free(state); return; @@ -716,6 +721,11 @@ int32_t ctdb_control_set_recmode(struct ctdb_context *ctdb, state->fd[0] = -1; state->fd[1] = -1; + /* release any deferred attach calls from clients */ + if (recmode == CTDB_RECOVERY_NORMAL) { + ctdb_process_deferred_attach(ctdb); + } + if (ctdb->tunable.verify_recovery_lock == 0) { /* dont need to verify the reclock file */ ctdb->recovery_mode = recmode; |