summaryrefslogtreecommitdiffstats
path: root/ctdb/server
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronniesahlberg@gmail.com>2011-09-01 10:21:55 +1000
committerRonnie Sahlberg <ronniesahlberg@gmail.com>2011-09-01 10:21:55 +1000
commit63dc96cdb2b6dcdfed8e49c3f2f6a42ed13d1df5 (patch)
treed7963c54213fbd22540ec08516bb256e570896ea /ctdb/server
parent7567e013370199b6b25a580e64bf3466531e0034 (diff)
downloadsamba-63dc96cdb2b6dcdfed8e49c3f2f6a42ed13d1df5.tar.gz
samba-63dc96cdb2b6dcdfed8e49c3f2f6a42ed13d1df5.tar.xz
samba-63dc96cdb2b6dcdfed8e49c3f2f6a42ed13d1df5.zip
ReadOnly: Change the ctdb_db structure to keep a uint8_t for flags instead of a boolean for
the persistent flag. This is the same size as the original boolean but allows ut to add additional flags for the database (This used to be ctdb commit 7462761638d25880ad46024ad4ef21667eb99a98)
Diffstat (limited to 'ctdb/server')
-rw-r--r--ctdb/server/ctdb_recover.c4
-rw-r--r--ctdb/server/ctdb_recoverd.c9
2 files changed, 8 insertions, 5 deletions
diff --git a/ctdb/server/ctdb_recover.c b/ctdb/server/ctdb_recover.c
index f865dbadfb..bfd9bae772 100644
--- a/ctdb/server/ctdb_recover.c
+++ b/ctdb/server/ctdb_recover.c
@@ -187,7 +187,9 @@ ctdb_control_getdbmap(struct ctdb_context *ctdb, uint32_t opcode, TDB_DATA indat
dbid_map->num = len;
for (i=0,ctdb_db=ctdb->db_list;ctdb_db;i++,ctdb_db=ctdb_db->next){
dbid_map->dbs[i].dbid = ctdb_db->db_id;
- dbid_map->dbs[i].persistent = ctdb_db->persistent;
+ if (ctdb_db->persistent != 0) {
+ dbid_map->dbs[i].flags |= CTDB_DB_FLAGS_PERSISTENT;
+ }
}
return 0;
diff --git a/ctdb/server/ctdb_recoverd.c b/ctdb/server/ctdb_recoverd.c
index 2db9109532..44a9e4bfad 100644
--- a/ctdb/server/ctdb_recoverd.c
+++ b/ctdb/server/ctdb_recoverd.c
@@ -439,7 +439,8 @@ static int create_missing_remote_databases(struct ctdb_context *ctdb, struct ctd
return -1;
}
ctdb_ctrl_createdb(ctdb, CONTROL_TIMEOUT(), nodemap->nodes[j].pnn,
- mem_ctx, name, dbmap->dbs[db].persistent);
+ mem_ctx, name,
+ dbmap->dbs[db].flags & CTDB_DB_FLAGS_PERSISTENT);
if (ret != 0) {
DEBUG(DEBUG_ERR, (__location__ " Unable to create remote db:%s\n", name));
return -1;
@@ -502,7 +503,7 @@ static int create_missing_local_databases(struct ctdb_context *ctdb, struct ctdb
return -1;
}
ctdb_ctrl_createdb(ctdb, CONTROL_TIMEOUT(), pnn, mem_ctx, name,
- remote_dbmap->dbs[db].persistent);
+ remote_dbmap->dbs[db].flags & CTDB_DB_FLAGS_PERSISTENT);
if (ret != 0) {
DEBUG(DEBUG_ERR, (__location__ " Unable to create local db:%s\n", name));
return -1;
@@ -823,7 +824,7 @@ static void vacuum_fetch_handler(struct ctdb_context *ctdb, uint64_t srvid,
for (i=0;i<dbmap->num;i++) {
if (dbmap->dbs[i].dbid == recs->db_id) {
- persistent = dbmap->dbs[i].persistent;
+ persistent = dbmap->dbs[i].flags & CTDB_DB_FLAGS_PERSISTENT;
break;
}
}
@@ -1515,7 +1516,7 @@ static int do_recovery(struct ctdb_recoverd *rec,
for (i=0;i<dbmap->num;i++) {
ret = recover_database(rec, mem_ctx,
dbmap->dbs[i].dbid,
- dbmap->dbs[i].persistent,
+ dbmap->dbs[i].flags & CTDB_DB_FLAGS_PERSISTENT,
pnn, nodemap, generation);
if (ret != 0) {
DEBUG(DEBUG_ERR, (__location__ " Failed to recover database 0x%x\n", dbmap->dbs[i].dbid));