From 61c7b30bbd1f90ee9a1ee506f3a7b0908e0c4de7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rados=C5=82aw=20Zarzy=C5=84ski?= Date: Tue, 9 May 2023 18:05:46 +0200 Subject: [PATCH] common, doc, include, mds, mon: add feature/release name squid MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Radosław Zarzyński --- doc/dev/release-checklists.rst | 12 ++++++------ src/common/ceph_releases.h | 1 + src/common/ceph_strings.cc | 2 ++ src/include/rados.h | 3 ++- src/include/rbd/librbd.h | 2 +- src/mds/cephfs_features.h | 2 +- src/mon/mon_types.h | 14 ++++++++++++-- 7 files changed, 25 insertions(+), 11 deletions(-) diff --git a/doc/dev/release-checklists.rst b/doc/dev/release-checklists.rst index 66af04e7d9650..938d6e3e343f2 100644 --- a/doc/dev/release-checklists.rst +++ b/doc/dev/release-checklists.rst @@ -33,12 +33,12 @@ Define release names and constants Make sure X (and, ideally, X+1) is defined: -- [ ] src/common/ceph_releases.h (`ceph_release_t`) -- [ ] src/common/ceph_strings.cc (`ceph_release_name()`) -- [ ] src/include/rados.h (`CEPH_RELEASE_*` and `MAX`) -- [ ] src/include/rbd/librbd.h (`LIBRBD_VER_MINOR` to X) -- [ ] src/mon/mon_types.h (`ceph::features::mon::FEATURE_*` and related structs and helpers; note that monmaptool CLI test output will need adjustment) -- [ ] src/mds/cephfs_features.h (`CEPHFS_CURRENT_RELEASE`) +- [x] src/common/ceph_releases.h (`ceph_release_t`) +- [x] src/common/ceph_strings.cc (`ceph_release_name()`) +- [x] src/include/rados.h (`CEPH_RELEASE_*` and `MAX`) +- [x] src/include/rbd/librbd.h (`LIBRBD_VER_MINOR` to X) +- [x] src/mon/mon_types.h (`ceph::features::mon::FEATURE_*` and related structs and helpers; note that monmaptool CLI test output will need adjustment) +- [x] src/mds/cephfs_features.h (`CEPHFS_CURRENT_RELEASE`) Scripts ~~~~~~~ diff --git a/src/common/ceph_releases.h b/src/common/ceph_releases.h index e09e191e5ec74..6d330b5d5b68b 100644 --- a/src/common/ceph_releases.h +++ b/src/common/ceph_releases.h @@ -30,6 +30,7 @@ enum class ceph_release_t : std::uint8_t { pacific, quincy, reef, + squid, max, }; diff --git a/src/common/ceph_strings.cc b/src/common/ceph_strings.cc index 18dcc701b31d5..5103b1a3f83cd 100644 --- a/src/common/ceph_strings.cc +++ b/src/common/ceph_strings.cc @@ -112,6 +112,8 @@ const char *ceph_release_name(int r) return "quincy"; case CEPH_RELEASE_REEF: return "reef"; + case CEPH_RELEASE_SQUID: + return "squid"; default: if (r < 0) return "unspecified"; diff --git a/src/include/rados.h b/src/include/rados.h index eac3a2159bf88..1fb86be947e60 100644 --- a/src/include/rados.h +++ b/src/include/rados.h @@ -207,7 +207,8 @@ extern const char *ceph_osd_state_name(int s); #define CEPH_RELEASE_PACIFIC 16 #define CEPH_RELEASE_QUINCY 17 #define CEPH_RELEASE_REEF 18 -#define CEPH_RELEASE_MAX 19 /* highest + 1 */ +#define CEPH_RELEASE_SQUID 19 +#define CEPH_RELEASE_MAX 20 /* highest + 1 */ /* * The error code to return when an OSD can't handle a write diff --git a/src/include/rbd/librbd.h b/src/include/rbd/librbd.h index 50901cb8a82d1..4a7e108e73f58 100644 --- a/src/include/rbd/librbd.h +++ b/src/include/rbd/librbd.h @@ -32,7 +32,7 @@ extern "C" { #include "features.h" #define LIBRBD_VER_MAJOR 1 -#define LIBRBD_VER_MINOR 18 +#define LIBRBD_VER_MINOR 19 #define LIBRBD_VER_EXTRA 0 #define LIBRBD_VERSION(maj, min, extra) ((maj << 16) + (min << 8) + extra) diff --git a/src/mds/cephfs_features.h b/src/mds/cephfs_features.h index 3a67e96dba160..b90377779e1ca 100644 --- a/src/mds/cephfs_features.h +++ b/src/mds/cephfs_features.h @@ -27,7 +27,7 @@ namespace ceph { // and update Server::update_required_client_features(). This feature bit // is used to indicate that operator only wants clients from that release or // later to mount CephFS. -#define CEPHFS_CURRENT_RELEASE CEPH_RELEASE_REEF +#define CEPHFS_CURRENT_RELEASE CEPH_RELEASE_SQUID // The first 5 bits are reserved for old ceph releases. #define CEPHFS_FEATURE_JEWEL 5 diff --git a/src/mon/mon_types.h b/src/mon/mon_types.h index cce9976f3c350..2bf483939a836 100644 --- a/src/mon/mon_types.h +++ b/src/mon/mon_types.h @@ -482,8 +482,9 @@ namespace ceph { constexpr mon_feature_t FEATURE_PACIFIC( (1ULL << 6)); // elector pinging and CONNECTIVITY mode: constexpr mon_feature_t FEATURE_PINGING( (1ULL << 7)); - constexpr mon_feature_t FEATURE_QUINCY( (1ULL << 8)); - constexpr mon_feature_t FEATURE_REEF( (1ULL << 9)); + constexpr mon_feature_t FEATURE_QUINCY( (1ULL << 8)); + constexpr mon_feature_t FEATURE_REEF( (1ULL << 9)); + constexpr mon_feature_t FEATURE_SQUID( (1ULL << 10)); constexpr mon_feature_t FEATURE_RESERVED( (1ULL << 63)); constexpr mon_feature_t FEATURE_NONE( (0ULL)); @@ -505,6 +506,7 @@ namespace ceph { FEATURE_PINGING | FEATURE_QUINCY | FEATURE_REEF | + FEATURE_SQUID | FEATURE_NONE ); } @@ -530,6 +532,7 @@ namespace ceph { FEATURE_PINGING | FEATURE_QUINCY | FEATURE_REEF | + FEATURE_SQUID | FEATURE_NONE ); } @@ -548,6 +551,9 @@ namespace ceph { static inline ceph_release_t infer_ceph_release_from_mon_features(mon_feature_t f) { + if (f.contains_all(ceph::features::mon::FEATURE_SQUID)) { + return ceph_release_t::squid; + } if (f.contains_all(ceph::features::mon::FEATURE_REEF)) { return ceph_release_t::reef; } @@ -598,6 +604,8 @@ static inline const char *ceph::features::mon::get_feature_name(uint64_t b) { return "quincy"; } else if (f == FEATURE_REEF) { return "reef"; + } else if (f == FEATURE_SQUID) { + return "squid"; } else if (f == FEATURE_RESERVED) { return "reserved"; } @@ -626,6 +634,8 @@ inline mon_feature_t ceph::features::mon::get_feature_by_name(const std::string return FEATURE_QUINCY; } else if (n == "reef") { return FEATURE_REEF; + } else if (n == "squid") { + return FEATURE_SQUID; } else if (n == "reserved") { return FEATURE_RESERVED; } -- 2.39.5