]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common, doc, include, mds, mon: add feature/release name reef
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Wed, 3 Aug 2022 12:42:25 +0000 (12:42 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 20 Sep 2022 14:26:59 +0000 (14:26 +0000)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
doc/dev/release-checklists.rst
src/common/ceph_releases.h
src/common/ceph_strings.cc
src/include/rados.h
src/mds/cephfs_features.h
src/mon/mon_types.h

index 6a1ee85bbdae3e214d554af65d88ab63aca819df..a2815605180078031f1f658edeb50cc283ac6ae0 100644 (file)
@@ -26,11 +26,11 @@ 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/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/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
 ~~~~~~~
index cb026db06494e3bb322d112b4c65834c728c89ba..e09e191e5ec7450daebc1b6d5d719c9ca259d822 100644 (file)
@@ -29,6 +29,7 @@ enum class ceph_release_t : std::uint8_t {
   octopus,
   pacific,
   quincy,
+  reef,
   max,
 };
 
index 113a3ca894a7d407fb3187c33b4ccc908bdd9b60..0332011ecc9f8a0eca5a6540803dbf51e11739d0 100644 (file)
@@ -110,6 +110,8 @@ const char *ceph_release_name(int r)
                return "pacific";
        case CEPH_RELEASE_QUINCY:
                return "quincy";
+       case CEPH_RELEASE_REEF:
+               return "reef";
        default:
                if (r < 0)
                        return "unspecified";
index ae4ab59de8f5b26d2f74df4395251e17c3d6aafb..55cfdcb7871e683b39fa4cbe6ccfdb4cdf166500 100644 (file)
@@ -205,7 +205,8 @@ extern const char *ceph_osd_state_name(int s);
 #define CEPH_RELEASE_OCTOPUS    15
 #define CEPH_RELEASE_PACIFIC    16
 #define CEPH_RELEASE_QUINCY     17
-#define CEPH_RELEASE_MAX        18  /* highest + 1 */
+#define CEPH_RELEASE_REEF       18
+#define CEPH_RELEASE_MAX        19  /* highest + 1 */
 
 /*
  * The error code to return when an OSD can't handle a write
index beb14b2d6e7a97d6e27415b39b4ce31fb097eccb..c73ac1e8397a48f70118a1f60f752c8c15930b33 100644 (file)
@@ -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_QUINCY
+#define CEPHFS_CURRENT_RELEASE  CEPH_RELEASE_REEF
 
 // The first 5 bits are reserved for old ceph releases.
 #define CEPHFS_FEATURE_JEWEL                5
index ec4b74897708dc450f2170d35317d48a1963edf3..02aad5a0b870b4bef7eae32563eba536c3de848e 100644 (file)
@@ -488,6 +488,7 @@ namespace ceph {
       // 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_RESERVED(   (1ULL << 63));
       constexpr mon_feature_t FEATURE_NONE(       (0ULL));
@@ -508,6 +509,7 @@ namespace ceph {
          FEATURE_PACIFIC |
          FEATURE_PINGING |
          FEATURE_QUINCY |
+         FEATURE_REEF |
          FEATURE_NONE
          );
       }
@@ -532,6 +534,7 @@ namespace ceph {
          FEATURE_PACIFIC |
          FEATURE_PINGING |
          FEATURE_QUINCY |
+         FEATURE_REEF |
          FEATURE_NONE
          );
       }
@@ -550,6 +553,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_REEF)) {
+    return ceph_release_t::reef;
+  }
   if (f.contains_all(ceph::features::mon::FEATURE_QUINCY)) {
     return ceph_release_t::quincy;
   }
@@ -595,6 +601,8 @@ static inline const char *ceph::features::mon::get_feature_name(uint64_t b) {
     return "pacific";
   } else if (f == FEATURE_QUINCY) {
     return "quincy";
+  } else if (f == FEATURE_REEF) {
+    return "reef";
   } else if (f == FEATURE_RESERVED) {
     return "reserved";
   }
@@ -621,6 +629,8 @@ inline mon_feature_t ceph::features::mon::get_feature_by_name(const std::string
     return FEATURE_PACIFIC;
   } else if (n == "quincy") {
     return FEATURE_QUINCY;
+  } else if (n == "reef") {
+    return FEATURE_REEF;
   } else if (n == "reserved") {
     return FEATURE_RESERVED;
   }