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++)
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
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);