diff options
author | Amitay Isaacs <amitay@gmail.com> | 2017-03-02 15:53:17 +1100 |
---|---|---|
committer | Martin Schwenke <martins@samba.org> | 2017-06-29 10:34:27 +0200 |
commit | 7c462b0df873a42a5f0a19887c0a3d7f12993ddd (patch) | |
tree | 4bc8c390136c4b7767355fc213ba69375970f14a /ctdb | |
parent | 4e43a344cc30679d8326ba1b2c6ddf459ac6d0bb (diff) | |
download | samba-7c462b0df873a42a5f0a19887c0a3d7f12993ddd.tar.gz |
ctdb-daemon: Store db_flags instead of individual boolean flags
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Diffstat (limited to 'ctdb')
-rw-r--r-- | ctdb/client/ctdb_client.c | 4 | ||||
-rw-r--r-- | ctdb/common/ctdb_ltdb.c | 26 | ||||
-rw-r--r-- | ctdb/include/ctdb_private.h | 4 | ||||
-rw-r--r-- | ctdb/server/ctdb_ltdb_server.c | 4 | ||||
-rw-r--r-- | ctdb/server/ctdb_recover.c | 10 |
5 files changed, 27 insertions, 21 deletions
diff --git a/ctdb/client/ctdb_client.c b/ctdb/client/ctdb_client.c index b1087c498f9..5ec3d0043f3 100644 --- a/ctdb/client/ctdb_client.c +++ b/ctdb/client/ctdb_client.c @@ -2176,7 +2176,9 @@ struct ctdb_db_context *ctdb_attach(struct ctdb_context *ctdb, return NULL; } - ctdb_db->persistent = persistent; + if (persistent) { + ctdb_db->db_flags = CTDB_DB_FLAGS_PERSISTENT; + } DLIST_ADD(ctdb->db_list, ctdb_db); diff --git a/ctdb/common/ctdb_ltdb.c b/ctdb/common/ctdb_ltdb.c index aa1db9de6ea..c36b440a714 100644 --- a/ctdb/common/ctdb_ltdb.c +++ b/ctdb/common/ctdb_ltdb.c @@ -80,37 +80,49 @@ struct ctdb_db_context *ctdb_db_handle(struct ctdb_context *ctdb, const char *na bool ctdb_db_persistent(struct ctdb_db_context *ctdb_db) { - return ctdb_db->persistent; + if (ctdb_db->db_flags & CTDB_DB_FLAGS_PERSISTENT) { + return true; + } + return false; } bool ctdb_db_volatile(struct ctdb_db_context *ctdb_db) { - return !ctdb_db->persistent; + if (ctdb_db->db_flags & CTDB_DB_FLAGS_PERSISTENT) { + return false; + } + return true; } bool ctdb_db_readonly(struct ctdb_db_context *ctdb_db) { - return ctdb_db->readonly; + if (ctdb_db->db_flags & CTDB_DB_FLAGS_READONLY) { + return true; + } + return false; } void ctdb_db_set_readonly(struct ctdb_db_context *ctdb_db) { - ctdb_db->readonly = true; + ctdb_db->db_flags |= CTDB_DB_FLAGS_READONLY; } void ctdb_db_reset_readonly(struct ctdb_db_context *ctdb_db) { - ctdb_db->readonly = false; + ctdb_db->db_flags &= ~CTDB_DB_FLAGS_READONLY; } bool ctdb_db_sticky(struct ctdb_db_context *ctdb_db) { - return ctdb_db->sticky; + if (ctdb_db->db_flags & CTDB_DB_FLAGS_STICKY) { + return true; + } + return false; } void ctdb_db_set_sticky(struct ctdb_db_context *ctdb_db) { - ctdb_db->sticky = true; + ctdb_db->db_flags |= CTDB_DB_FLAGS_STICKY; } /* diff --git a/ctdb/include/ctdb_private.h b/ctdb/include/ctdb_private.h index 8cdb4d8f0fa..4b0805bd1a6 100644 --- a/ctdb/include/ctdb_private.h +++ b/ctdb/include/ctdb_private.h @@ -344,9 +344,7 @@ struct ctdb_db_context { struct ctdb_db_context *next, *prev; struct ctdb_context *ctdb; uint32_t db_id; - bool persistent; - bool readonly; /* Do we support read-only delegations ? */ - bool sticky; /* Do we support sticky records ? */ + uint8_t db_flags; const char *db_name; const char *db_path; struct tdb_wrap *ltdb; diff --git a/ctdb/server/ctdb_ltdb_server.c b/ctdb/server/ctdb_ltdb_server.c index 57611e29fbc..769d7c39dda 100644 --- a/ctdb/server/ctdb_ltdb_server.c +++ b/ctdb/server/ctdb_ltdb_server.c @@ -778,7 +778,9 @@ static int ctdb_local_attach(struct ctdb_context *ctdb, const char *db_name, key.dsize = strlen(db_name)+1; key.dptr = discard_const(db_name); ctdb_db->db_id = ctdb_hash(&key); - ctdb_db->persistent = persistent; + if (persistent) { + ctdb_db->db_flags = CTDB_DB_FLAGS_PERSISTENT; + } if (ctdb_db_volatile(ctdb_db)) { ctdb_db->delete_queue = trbt_create(ctdb_db, 0); diff --git a/ctdb/server/ctdb_recover.c b/ctdb/server/ctdb_recover.c index 0af6309c28e..9c8bf6b5fdf 100644 --- a/ctdb/server/ctdb_recover.c +++ b/ctdb/server/ctdb_recover.c @@ -115,15 +115,7 @@ 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].db_id = ctdb_db->db_id; - if (ctdb_db_persistent(ctdb_db)) { - dbid_map->dbs[i].flags |= CTDB_DB_FLAGS_PERSISTENT; - } - if (ctdb_db_readonly(ctdb_db)) { - dbid_map->dbs[i].flags |= CTDB_DB_FLAGS_READONLY; - } - if (ctdb_db_sticky(ctdb_db)) { - dbid_map->dbs[i].flags |= CTDB_DB_FLAGS_STICKY; - } + dbid_map->dbs[i].flags = ctdb_db->db_flags; } return 0; |