From: Sage Weil Date: Wed, 27 Jan 2021 20:32:31 +0000 (-0600) Subject: mon: update for quincy ondisk features X-Git-Tag: v17.1.0~3123^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d777adb89e058e8fc44bfe5363ef62c7f705c504;p=ceph.git mon: update for quincy ondisk features Signed-off-by: Sage Weil --- diff --git a/doc/dev/release-checklists.rst b/doc/dev/release-checklists.rst index fd577c9d1f928..0793469a211d3 100644 --- a/doc/dev/release-checklists.rst +++ b/doc/dev/release-checklists.rst @@ -55,10 +55,10 @@ Feature bits 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 --- diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 256ad58a6de19..c58e6e528a437 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -519,6 +519,7 @@ CompatSet Monitor::get_supported_features() 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; } @@ -2476,6 +2477,13 @@ void Monitor::apply_monmap_to_compatset_features() 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); @@ -2508,6 +2516,9 @@ void Monitor::calc_quorum_requirements() 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( diff --git a/src/mon/Monitor.h b/src/mon/Monitor.h index 95f0259bcb1bb..1b8bd8c7c6dfc 100644 --- a/src/mon/Monitor.h +++ b/src/mon/Monitor.h @@ -1077,6 +1077,7 @@ public: #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