uint32_t use_status_events_for_monitoring;
uint32_t allow_unhealthy_db_read;
uint32_t stat_history_interval;
+ uint32_t deferred_attach_timeout;
};
/*
/* used in the recovery daemon to remember the ip allocation */
struct trbt_tree *ip_tree;
+
+ /* Used to defer db attach requests while in recovery mode */
+ struct ctdb_deferred_attach_context *deferred_attach;
};
struct ctdb_db_context {
struct ctdb_vacuum_handle *vacuum_handle;
char *unhealthy_reason;
int pending_requests;
+ struct lockwait_handle *lockwait_active;
struct lockwait_handle *lockwait_overflow;
};
void *private_data);
int32_t ctdb_control_db_attach(struct ctdb_context *ctdb, TDB_DATA indata,
- TDB_DATA *outdata, uint64_t tdb_flags, bool persistent);
+ TDB_DATA *outdata, uint64_t tdb_flags,
+ bool persistent, uint32_t client_id,
+ struct ctdb_req_control *c,
+ bool *async_reply);
int ctdb_daemon_set_call(struct ctdb_context *ctdb, uint32_t db_id,
ctdb_fn_t fn, int id);
int ctdb_deferred_drop_all_ips(struct ctdb_context *ctdb);
+int ctdb_process_deferred_attach(struct ctdb_context *ctdb);
+
#endif