diff options
author | Ronnie Sahlberg <ronniesahlberg@gmail.com> | 2011-08-23 10:41:52 +1000 |
---|---|---|
committer | Ronnie Sahlberg <ronniesahlberg@gmail.com> | 2011-08-23 10:41:52 +1000 |
commit | 9729d3e339d33ef85025aab2c09c180430998f35 (patch) | |
tree | 1a97e5d9ee6af84ab992762e8031cb82795b18fb | |
parent | 0615ede49d44be601af523dd045ea7dc0613e14c (diff) | |
download | samba-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.c | 2 | ||||
-rw-r--r-- | ctdb/server/ctdb_daemon.c | 2 | ||||
-rw-r--r-- | ctdb/server/ctdb_ltdb_server.c | 2 | ||||
-rw-r--r-- | ctdb/server/ctdb_recover.c | 1 |
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); |