}
/* Dont do READONLY if we dont have a tracking database */
- if ((c->flags & CTDB_WANT_READONLY) && ctdb_db->rottdb == NULL) {
+ if ((c->flags & CTDB_WANT_READONLY) && !ctdb_db->readonly) {
c->flags &= ~CTDB_WANT_READONLY;
}
}
/* Dont do READONLY if we dont have a tracking database */
- if ((c->flags & CTDB_WANT_READONLY) && ctdb_db->rottdb == NULL) {
+ if ((c->flags & CTDB_WANT_READONLY) && !ctdb_db->readonly) {
c->flags &= ~CTDB_WANT_READONLY;
}
ropath = talloc_asprintf(ctdb_db, "%s.RO", ctdb_db->db_path);
if (ropath == NULL) {
DEBUG(DEBUG_CRIT,("Failed to asprintf the tracking database\n"));
+ ctdb_db->readonly = false;
talloc_free(ctdb_db);
return -1;
}
O_CREAT|O_RDWR, 0);
if (ctdb_db->rottdb == NULL) {
DEBUG(DEBUG_CRIT,("Failed to open/create the tracking database '%s'\n", ropath));
+ ctdb_db->readonly = false;
talloc_free(ctdb_db);
return -1;
}
ctdb_db->readonly = false;
tdb_close(ctdb_db->rottdb);
ctdb_db->rottdb = NULL;
+ ctdb_db->readonly = false;
}
while (ctdb_db->revokechild_active != NULL) {
talloc_free(ctdb_db->revokechild_active);