]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: PaxosService: is_readable/writeable() depending on is_active()
authorJoao Eduardo Luis <joao.luis@inktank.com>
Fri, 19 Apr 2013 11:56:51 +0000 (12:56 +0100)
committerJoao Eduardo Luis <joao.luis@inktank.com>
Mon, 22 Apr 2013 22:20:18 +0000 (23:20 +0100)
Instead of depending on individual conditions.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
src/mon/PaxosService.h

index 31ec1eea999428b34c4819e396cf0faa5e49d961..e8cd214783cb6351f0491b458a1bd9fa0f2039ee 100644 (file)
@@ -485,7 +485,7 @@ public:
   bool is_readable(version_t ver = 0) {
     if ((ver > get_last_committed())
        || ((!mon->is_peon() && !mon->is_leader()))
-       || (is_proposing() || paxos->is_recovering() || paxos->is_locked())
+        || !is_active()
        || (get_last_committed() <= 0)
        || ((mon->get_quorum().size() != 1) && !paxos->is_lease_valid())) {
       return false;
@@ -507,10 +507,9 @@ public:
    * @returns true if writeable; false otherwise
    */
   bool is_writeable() {
-    return (!is_proposing() && mon->is_leader()
-        && !paxos->is_locked()
-       && paxos->is_lease_valid() && !paxos->is_bootstrapping()
-        && !paxos->is_recovering());
+    return (is_active()
+        && mon->is_leader()
+        && paxos->is_lease_valid());
   }
 
   /**