From: Sage Weil Date: Mon, 28 Aug 2017 19:21:44 +0000 (-0400) Subject: mon: CEPH_MON_FEATURE_INCOMPAT_LUMINOUS X-Git-Tag: v13.0.1~1103^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5b6c451e3fdaf0785b197fdfacf1c782b932bec9;p=ceph.git mon: CEPH_MON_FEATURE_INCOMPAT_LUMINOUS - set this once we have a luminous quorum - require luminous if we have this set locally - include this on mkfs Signed-off-by: Sage Weil --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 4d8b6b8f628b..eb720e183feb 100755 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -370,6 +370,7 @@ CompatSet Monitor::get_supported_features() compat.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_ERASURE_CODE_PLUGINS_V2); compat.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_ERASURE_CODE_PLUGINS_V3); compat.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_KRAKEN); + compat.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_LUMINOUS); return compat; } @@ -2083,6 +2084,13 @@ void Monitor::apply_monmap_to_compatset_features() assert(HAVE_FEATURE(quorum_con_features, SERVER_KRAKEN)); new_features.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_KRAKEN); } + if (monmap_features.contains_all(ceph::features::mon::FEATURE_LUMINOUS)) { + assert(ceph::features::mon::get_persistent().contains_all( + ceph::features::mon::FEATURE_LUMINOUS)); + // this feature should only ever be set if the quorum supports it. + assert(HAVE_FEATURE(quorum_con_features, SERVER_LUMINOUS)); + new_features.incompat.insert(CEPH_MON_FEATURE_INCOMPAT_LUMINOUS); + } dout(5) << __func__ << dendl; _apply_compatset_features(new_features); @@ -2108,6 +2116,9 @@ void Monitor::calc_quorum_requirements() if (features.incompat.contains(CEPH_MON_FEATURE_INCOMPAT_KRAKEN)) { required_features |= CEPH_FEATUREMASK_SERVER_KRAKEN; } + if (features.incompat.contains(CEPH_MON_FEATURE_INCOMPAT_LUMINOUS)) { + required_features |= CEPH_FEATUREMASK_SERVER_LUMINOUS; + } // monmap if (monmap->get_required_features().contains_all( diff --git a/src/mon/Monitor.h b/src/mon/Monitor.h index fa4ba9fa8f56..e61f4b99e6df 100644 --- a/src/mon/Monitor.h +++ b/src/mon/Monitor.h @@ -993,6 +993,7 @@ public: #define CEPH_MON_FEATURE_INCOMPAT_ERASURE_CODE_PLUGINS_V2 CompatSet::Feature(6, "support isa/lrc erasure code") #define CEPH_MON_FEATURE_INCOMPAT_ERASURE_CODE_PLUGINS_V3 CompatSet::Feature(7, "support shec erasure code") #define CEPH_MON_FEATURE_INCOMPAT_KRAKEN CompatSet::Feature(8, "support monmap features") +#define CEPH_MON_FEATURE_INCOMPAT_LUMINOUS CompatSet::Feature(9, "luminous ondisk layout") // make sure you add your feature to Monitor::get_supported_features