summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronniesahlberg@gmail.com>2011-08-23 10:41:52 +1000
committerRonnie Sahlberg <ronniesahlberg@gmail.com>2011-08-23 10:41:52 +1000
commit9729d3e339d33ef85025aab2c09c180430998f35 (patch)
tree1a97e5d9ee6af84ab992762e8031cb82795b18fb
parent0615ede49d44be601af523dd045ea7dc0613e14c (diff)
downloadsamba-9729d3e339d33ef85025aab2c09c180430998f35.tar.gz
samba-9729d3e339d33ef85025aab2c09c180430998f35.tar.xz
samba-9729d3e339d33ef85025aab2c09c180430998f35.zip
ReadOnly: Check the readonly flag instead of whether the tdb pointer is NULL or not
(This used to be ctdb commit 01314c2cb3a480917d6a632b83c39f0a48bba0e7)
-rw-r--r--ctdb/server/ctdb_call.c2
-rw-r--r--ctdb/server/ctdb_daemon.c2
-rw-r--r--ctdb/server/ctdb_ltdb_server.c2
-rw-r--r--ctdb/server/ctdb_recover.c1
4 files changed, 5 insertions, 2 deletions
diff --git a/ctdb/server/ctdb_call.c b/ctdb/server/ctdb_call.c
index fbce276df3..9e8642221c 100644
--- a/ctdb/server/ctdb_call.c
+++ b/ctdb/server/ctdb_call.c
@@ -507,7 +507,7 @@ void ctdb_request_call(struct ctdb_context *ctdb, struct ctdb_req_header *hdr)
}
/* 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;
}
diff --git a/ctdb/server/ctdb_daemon.c b/ctdb/server/ctdb_daemon.c
index 742170a690..88d12103f7 100644
--- a/ctdb/server/ctdb_daemon.c
+++ b/ctdb/server/ctdb_daemon.c
@@ -425,7 +425,7 @@ static void daemon_request_call_from_client(struct ctdb_client *client,
}
/* 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;
}
diff --git a/ctdb/server/ctdb_ltdb_server.c b/ctdb/server/ctdb_ltdb_server.c
index 82ed0f2b7c..3c41bb1ab7 100644
--- a/ctdb/server/ctdb_ltdb_server.c
+++ b/ctdb/server/ctdb_ltdb_server.c
@@ -937,6 +937,7 @@ again:
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;
}
@@ -946,6 +947,7 @@ again:
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;
}
diff --git a/ctdb/server/ctdb_recover.c b/ctdb/server/ctdb_recover.c
index 85b44b4734..f865dbadfb 100644
--- a/ctdb/server/ctdb_recover.c
+++ b/ctdb/server/ctdb_recover.c
@@ -497,6 +497,7 @@ int32_t ctdb_control_push_db(struct ctdb_context *ctdb, TDB_DATA indata)
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);