ctdb->leader_pnn = leader_pnn;
}
+static int get_leader(TALLOC_CTX *mem_ctx,
+ struct ctdb_context *ctdb,
+ uint32_t *leader)
+{
+ uint32_t pnn;
+ int ret;
+
+ ret = ctdb_ctrl_get_recmaster(mem_ctx,
+ ctdb->ev,
+ ctdb->client,
+ ctdb->cmd_pnn,
+ TIMEOUT(),
+ &pnn);
+ if (ret != 0) {
+ return ret;
+ }
+
+ *leader = pnn;
+ return 0;
+}
+
/*
* Command Functions
*/
return ret;
}
- ret = ctdb_ctrl_get_recmaster(mem_ctx, ctdb->ev, ctdb->client,
- ctdb->cmd_pnn, TIMEOUT(), &recmaster);
+ ret = get_leader(mem_ctx, ctdb, &recmaster);
if (ret != 0) {
return ret;
}
int ret;
again:
- ret = ctdb_ctrl_get_recmaster(mem_ctx, ctdb->ev, ctdb->client,
- ctdb->cmd_pnn, TIMEOUT(), &recmaster);
+ ret = get_leader(mem_ctx, ctdb, &recmaster);
if (ret != 0) {
fprintf(stderr, "Failed to find recovery master\n");
return ret;
uint32_t recmaster;
int ret;
- ret = ctdb_ctrl_get_recmaster(mem_ctx, ctdb->ev, ctdb->client,
- ctdb->cmd_pnn, TIMEOUT(), &recmaster);
+ ret = get_leader(mem_ctx, ctdb, &recmaster);
if (ret != 0) {
return ret;
}