From: Alex Ainscow Date: Thu, 9 Jan 2025 21:05:26 +0000 (+0000) Subject: *: add constants and release names X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bb7a6006b4dc291f3ad548bacefb44e83c3360c4;p=ceph.git *: add constants and release names Signed-off-by: Alex Ainscow --- diff --git a/doc/dev/release-checklists.rst b/doc/dev/release-checklists.rst index f9b4766d47f9..ad20223414dd 100644 --- a/doc/dev/release-checklists.rst +++ b/doc/dev/release-checklists.rst @@ -31,12 +31,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) -- [ ] 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) +- [x] src/mds/cephfs_features.h (`CEPHFS_CURRENT_RELEASE`) Github Actions ~~~~~~~~~~~~~~ diff --git a/src/common/ceph_releases.h b/src/common/ceph_releases.h index 9e537519e1ce..9f7c2942b4f6 100644 --- a/src/common/ceph_releases.h +++ b/src/common/ceph_releases.h @@ -32,6 +32,7 @@ enum class ceph_release_t : std::uint8_t { reef, squid, tentacle, + umbrella, max, }; diff --git a/src/common/ceph_strings.cc b/src/common/ceph_strings.cc index 804ed16f9240..01c613b60d49 100644 --- a/src/common/ceph_strings.cc +++ b/src/common/ceph_strings.cc @@ -117,6 +117,8 @@ const char *ceph_release_name(int r) return "squid"; case CEPH_RELEASE_TENTACLE: return "tentacle"; + case CEPH_RELEASE_UMBRELLA: + return "umbrella"; default: if (r < 0) return "unspecified"; diff --git a/src/include/rados.h b/src/include/rados.h index e471833a290a..3b11d112fcff 100644 --- a/src/include/rados.h +++ b/src/include/rados.h @@ -209,7 +209,8 @@ extern const char *ceph_osd_state_name(int s); #define CEPH_RELEASE_REEF 18 #define CEPH_RELEASE_SQUID 19 #define CEPH_RELEASE_TENTACLE 20 -#define CEPH_RELEASE_MAX 21 /* highest + 1 */ +#define CEPH_RELEASE_UMBRELLA 21 +#define CEPH_RELEASE_MAX 22 /* 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 e19d25fd195c..af2c84a33210 100644 --- a/src/include/rbd/librbd.h +++ b/src/include/rbd/librbd.h @@ -33,7 +33,7 @@ extern "C" { #include "features.h" #define LIBRBD_VER_MAJOR 1 -#define LIBRBD_VER_MINOR 20 +#define LIBRBD_VER_MINOR 21 #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 b1236cf4a929..552d0a505abc 100644 --- a/src/mds/cephfs_features.h +++ b/src/mds/cephfs_features.h @@ -28,7 +28,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_TENTACLE +#define CEPHFS_CURRENT_RELEASE CEPH_RELEASE_UMBRELLA // 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 b8b9f78dc0b4..d4a00e6481c1 100644 --- a/src/mon/mon_types.h +++ b/src/mon/mon_types.h @@ -536,6 +536,7 @@ namespace ceph { constexpr mon_feature_t FEATURE_REEF( (1ULL << 9)); constexpr mon_feature_t FEATURE_SQUID( (1ULL << 10)); constexpr mon_feature_t FEATURE_TENTACLE( (1ULL << 11)); + constexpr mon_feature_t FEATURE_UMBRELLA( (1ULL << 12)); // Release-independent features @@ -563,6 +564,7 @@ namespace ceph { FEATURE_REEF | FEATURE_SQUID | FEATURE_TENTACLE | + FEATURE_UMBRELLA | // Release-independent features FEATURE_NVMEOF_BEACON_DIFF | @@ -594,6 +596,7 @@ namespace ceph { FEATURE_REEF | FEATURE_SQUID | FEATURE_TENTACLE | + FEATURE_UMBRELLA | // Release-independent features FEATURE_NVMEOF_BEACON_DIFF | @@ -616,6 +619,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_UMBRELLA)) { + return ceph_release_t::umbrella; + } if (f.contains_all(ceph::features::mon::FEATURE_TENTACLE)) { return ceph_release_t::tentacle; } @@ -676,6 +682,8 @@ static inline const char *ceph::features::mon::get_feature_name(uint64_t b) { return "squid"; } else if (f == FEATURE_TENTACLE) { return "tentacle"; + } else if (f == FEATURE_UMBRELLA) { + return "umbrella"; // Release-independent features } else if (f == FEATURE_NVMEOF_BEACON_DIFF) { return "nvmeof_beacon_diff"; @@ -711,6 +719,8 @@ inline mon_feature_t ceph::features::mon::get_feature_by_name(const std::string return FEATURE_SQUID; } else if (n == "tentacle") { return FEATURE_TENTACLE; + } else if (n == "umbrella") { + return FEATURE_UMBRELLA; // Release-independent features } else if (n == "nvmeof_beacon_diff") { return FEATURE_NVMEOF_BEACON_DIFF;