static bool _cluster_lock_lock(struct ctdb_recoverd *rec);
static bool cluster_lock_held(struct ctdb_recoverd *rec);
+static bool cluster_lock_enabled(struct ctdb_recoverd *rec)
+{
+ return rec->ctdb->recovery_lock != NULL;
+}
+
static bool cluster_lock_take(struct ctdb_recoverd *rec)
{
struct ctdb_context *ctdb = rec->ctdb;
bool have_lock;
- if (ctdb->recovery_lock == NULL) {
+ if (!cluster_lock_enabled(rec)) {
return true;
}
if (this_node_is_leader(rec)) {
rec->leader = CTDB_UNKNOWN_PNN;
}
- if (rec->ctdb->recovery_lock != NULL &&
- cluster_lock_held(rec)) {
+ if (cluster_lock_enabled(rec) && cluster_lock_held(rec)) {
cluster_lock_release(rec);
}
goto done;
goto fail;
}
- if (ctdb->recovery_lock != NULL) {
+ if (cluster_lock_enabled(rec)) {
bool ok;
ok = cluster_lock_take(rec);
break;
}
-
- if (ctdb->recovery_lock != NULL) {
+ if (cluster_lock_enabled(rec)) {
/* We must already hold the cluster lock */
if (!cluster_lock_held(rec)) {
D_ERR("Failed cluster lock sanity check\n");
exit(1);
}
- if (ctdb->recovery_lock == NULL) {
+ if (!cluster_lock_enabled(rec)) {
struct tevent_timer *tt;
tt = tevent_add_timer(ctdb->ev,