Compatsets
----------
-- [ ] mon/Monitor.h (`CEPH_MON_FEATURE_INCOMPAT_X`)
-- [ ] mon/Monitor.cc (include in `get_supported_features()`)
-- [ ] mon/Monitor.cc (`apply_monmap_to_compatset_features()`)
-- [ ] mon/Monitor.cc (`calc_quorum_requirements()`)
+- [x] mon/Monitor.h (`CEPH_MON_FEATURE_INCOMPAT_X`)
+- [x] mon/Monitor.cc (include in `get_supported_features()`)
+- [x] mon/Monitor.cc (`apply_monmap_to_compatset_features()`)
+- [x] mon/Monitor.cc (`calc_quorum_requirements()`)
Mon
---
compat.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_NAUTILUS);
compat.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_OCTOPUS);
compat.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_PACIFIC);
+ compat.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_QUINCY);
return compat;
}
ceph_assert(HAVE_FEATURE(quorum_con_features, SERVER_PACIFIC));
new_features.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_PACIFIC);
}
+ if (monmap_features.contains_all(ceph::features::mon::FEATURE_QUINCY)) {
+ ceph_assert(ceph::features::mon::get_persistent().contains_all(
+ ceph::features::mon::FEATURE_QUINCY));
+ // this feature should only ever be set if the quorum supports it.
+ ceph_assert(HAVE_FEATURE(quorum_con_features, SERVER_QUINCY));
+ new_features.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_QUINCY);
+ }
dout(5) << __func__ << dendl;
_apply_compatset_features(new_features);
if (features.incompat.contains(CEPH_MON_FEATURE_INCOMPAT_PACIFIC)) {
required_features |= CEPH_FEATUREMASK_SERVER_PACIFIC;
}
+ if (features.incompat.contains(CEPH_MON_FEATURE_INCOMPAT_QUINCY)) {
+ required_features |= CEPH_FEATUREMASK_SERVER_QUINCY;
+ }
// monmap
if (monmap->get_required_features().contains_all(
#define CEPH_MON_FEATURE_INCOMPAT_NAUTILUS CompatSet::Feature(11, "nautilus ondisk layout")
#define CEPH_MON_FEATURE_INCOMPAT_OCTOPUS CompatSet::Feature(12, "octopus ondisk layout")
#define CEPH_MON_FEATURE_INCOMPAT_PACIFIC CompatSet::Feature(13, "pacific ondisk layout")
+#define CEPH_MON_FEATURE_INCOMPAT_QUINCY CompatSet::Feature(13, "quincy ondisk layout")
// make sure you add your feature to Monitor::get_supported_features