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
~~~~~~~
nautilus,
octopus,
pacific,
+ quincy,
max,
};
return "octopus";
case CEPH_RELEASE_PACIFIC:
return "pacific";
+ case CEPH_RELEASE_QUINCY:
+ return "quincy";
default:
if (r < 0)
return "unspecified";
#define CEPH_RELEASE_NAUTILUS 14
#define CEPH_RELEASE_OCTOPUS 15
#define CEPH_RELEASE_PACIFIC 16
-#define CEPH_RELEASE_MAX 17 /* highest + 1 */
+#define CEPH_RELEASE_QUINCY 17
+#define CEPH_RELEASE_MAX 18 /* highest + 1 */
/*
* The error code to return when an OSD can't handle a write
// 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_PACIFIC
+#define CEPHFS_CURRENT_RELEASE CEPH_RELEASE_QUINCY
// The first 5 bits are reserved for old ceph releases.
#define CEPHFS_FEATURE_JEWEL 5
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_RESERVED( (1ULL << 63));
constexpr mon_feature_t FEATURE_NONE( (0ULL));
FEATURE_OCTOPUS |
FEATURE_PACIFIC |
FEATURE_PINGING |
+ FEATURE_QUINCY |
FEATURE_NONE
);
}
FEATURE_OCTOPUS |
FEATURE_PACIFIC |
FEATURE_PINGING |
+ FEATURE_QUINCY |
FEATURE_NONE
);
}
static inline ceph_release_t infer_ceph_release_from_mon_features(mon_feature_t f)
{
+ if (f.contains_all(ceph::features::mon::FEATURE_QUINCY)) {
+ return ceph_release_t::quincy;
+ }
if (f.contains_all(ceph::features::mon::FEATURE_PACIFIC)) {
return ceph_release_t::pacific;
}
return "octopus";
} else if (f == FEATURE_PACIFIC) {
return "pacific";
+ } else if (f == FEATURE_QUINCY) {
+ return "quincy";
} else if (f == FEATURE_RESERVED) {
return "reserved";
}
return FEATURE_OCTOPUS;
} else if (n == "pacific") {
return FEATURE_PACIFIC;
+ } else if (n == "quincy") {
+ return FEATURE_QUINCY;
} else if (n == "reserved") {
return FEATURE_RESERVED;
}