diff options
-rw-r--r-- | ctdb/server/ctdb_recoverd.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ctdb/server/ctdb_recoverd.c b/ctdb/server/ctdb_recoverd.c index 5e49e8842d9..62e4c4655da 100644 --- a/ctdb/server/ctdb_recoverd.c +++ b/ctdb/server/ctdb_recoverd.c @@ -954,17 +954,18 @@ static bool ctdb_recovery_lock(struct ctdb_recoverd *rec) return false; } + rec->recovery_lock_handle = s; + s->h = h; + while (! s->done) { tevent_loop_once(ctdb->ev); } if (! s->locked) { - talloc_free(s); + TALLOC_FREE(rec->recovery_lock_handle); return false; } - rec->recovery_lock_handle = s; - s->h = h; ctdb_ctrl_report_recd_lock_latency(ctdb, CONTROL_TIMEOUT(), s->latency); |