]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
*: add constants and release names
authorAlex Ainscow <aainscow@uk.ibm.com>
Thu, 9 Jan 2025 21:05:26 +0000 (21:05 +0000)
committerAlex Ainscow <aainscow@uk.ibm.com>
Wed, 25 Mar 2026 16:53:03 +0000 (16:53 +0000)
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
doc/dev/release-checklists.rst
src/common/ceph_releases.h
src/common/ceph_strings.cc
src/include/rados.h
src/include/rbd/librbd.h
src/mds/cephfs_features.h
src/mon/mon_types.h

index f9b4766d47f9663d9d06f29f5204ae4c65109b31..ad20223414dd5f60b7d824f3cec8cf0e9901b403 100644 (file)
@@ -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
 ~~~~~~~~~~~~~~
index 9e537519e1ce96e8f8a656f3edbb3b1fd39ef659..9f7c2942b4f62145af1d0c671561c1351f71f5f5 100644 (file)
@@ -32,6 +32,7 @@ enum class ceph_release_t : std::uint8_t {
   reef,
   squid,
   tentacle,
+  umbrella,
   max,
 };
 
index 804ed16f924070d69d62705ad270afbe0b1f0223..01c613b60d49a9f0b3384e25434cff132897ef2a 100644 (file)
@@ -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";
index e471833a290a0ce8513b9d330709c9e412550f1f..3b11d112fcfff210528719c0ed9a29dd01831244 100644 (file)
@@ -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
index e19d25fd195cfcaec6d3d5c04c7f3e46d2575cf9..af2c84a33210089566e1136abdaeaf01c1da60c3 100644 (file)
@@ -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)
index b1236cf4a9297bea5652b244685ba0d2bb9874d3..552d0a505abc16d0a1e71a641059712595a70e70 100644 (file)
@@ -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
index b8b9f78dc0b4754b4ae4b4da8e67b79ede4f4c57..d4a00e6481c1e14832f0879a6cda0e21fd212fb6 100644 (file)
@@ -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;