]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Monitor: add a function to get the required quorum features from the local compatset
authorGreg Farnum <greg@inktank.com>
Thu, 23 Jan 2014 02:21:38 +0000 (18:21 -0800)
committerGreg Farnum <greg@inktank.com>
Fri, 24 Jan 2014 20:33:56 +0000 (12:33 -0800)
We will use this to avoid deferring to people who can't read our store.

Signed-off-by: Greg Farnum <greg@inktank.com>
src/mon/Monitor.cc
src/mon/Monitor.h

index 4d396653996832a3d84dff73935e46b55936c37b..205d4908b64c85a7a52f73b9cf8541f150193749 100644 (file)
@@ -1628,6 +1628,17 @@ void Monitor::apply_quorum_to_compatset_features()
   }
 }
 
+uint64_t Monitor::apply_compatset_features_to_quorum_requirements()
+{
+  uint64_t required_features = 0;
+  if (features.incompat.contains(CEPH_MON_FEATURE_INCOMPAT_OSD_ERASURE_CODES)) {
+    required_features |= CEPH_FEATURE_OSD_ERASURE_CODES;
+  }
+  if (features.incompat.contains(CEPH_MON_FEATURE_INCOMPAT_OSDMAP_ENC)) {
+    required_features |= CEPH_FEATURE_OSDMAP_ENC;
+  }
+  return required_features;
+}
 
 void Monitor::sync_force(Formatter *f, ostream& ss)
 {
index e7af4429564afa996c74cf4c3471fe240ed41662..47fa6587aa32aaa4e575428fea0f1988167c8924 100644 (file)
@@ -526,6 +526,7 @@ public:
     return quorum_features;
   }
   void apply_quorum_to_compatset_features();
+  uint64_t apply_compatset_features_to_quorum_requirements();
 
 private:
   void _reset();   ///< called from bootstrap, start_, or join_election