]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: move setting of ondisk GV feature into helper
authorSage Weil <sage@inktank.com>
Thu, 13 Sep 2012 00:46:17 +0000 (17:46 -0700)
committerSage Weil <sage@inktank.com>
Wed, 19 Sep 2012 18:53:44 +0000 (11:53 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
src/mon/Monitor.cc
src/mon/Monitor.h

index 6f69be84bfa306dddef84019590a79a6a3c40220..2c7bb8af8dcade400e733db4a356edfe693a7c20 100644 (file)
@@ -215,9 +215,7 @@ void Monitor::recovered_leader(int id)
 
     if (!features.incompat.contains(CEPH_MON_FEATURE_INCOMPAT_GV) &&
        (quorum_features & CEPH_FEATURE_MON_GV)) {
-      dout(0) << "setting CEPH_MON_FEATURE_INCOMPAT_GV" << dendl;
-      features.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_GV);
-      write_features();
+      require_gv_ondisk();
     }
 
     for (vector<Paxos*>::iterator p = paxos.begin(); p != paxos.end(); p++)
@@ -241,14 +239,19 @@ void Monitor::recovered_peon(int id)
 
     if (!features.incompat.contains(CEPH_MON_FEATURE_INCOMPAT_GV) &&
        (quorum_features & CEPH_FEATURE_MON_GV)) {
-      dout(0) << "setting CEPH_MON_FEATURE_INCOMPAT_GV" << dendl;
-      features.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_GV);
-      write_features();
+      require_gv_ondisk();
     }
 
   }
 }
 
+void Monitor::require_gv_ondisk()
+{
+  dout(0) << "setting CEPH_MON_FEATURE_INCOMPAT_GV" << dendl;
+  features.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_GV);
+  write_features();
+}
+
 version_t Monitor::get_global_paxos_version()
 {
   // this should only be called when paxos becomes writeable, which is
index fd45432f04fab7f856559254d16c1fb9044bcfb8..a7513670e2e2b0c6032a296f86feaa55a1d6e597 100644 (file)
@@ -191,6 +191,8 @@ private:
   set<int> paxos_recovered;     ///< num paxos machines fully recovered during this election epoch
   version_t global_version;
 
+  void require_gv_ondisk();
+
 public:
   void recovered_leader(int id);
   void recovered_peon(int id);