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
~~~~~~~
pacific,
quincy,
reef,
+ squid,
max,
};
return "quincy";
case CEPH_RELEASE_REEF:
return "reef";
+ case CEPH_RELEASE_SQUID:
+ return "squid";
default:
if (r < 0)
return "unspecified";
#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
#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)
// 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
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));
FEATURE_PINGING |
FEATURE_QUINCY |
FEATURE_REEF |
+ FEATURE_SQUID |
FEATURE_NONE
);
}
FEATURE_PINGING |
FEATURE_QUINCY |
FEATURE_REEF |
+ FEATURE_SQUID |
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_SQUID)) {
+ return ceph_release_t::squid;
+ }
if (f.contains_all(ceph::features::mon::FEATURE_REEF)) {
return ceph_release_t::reef;
}
return "quincy";
} else if (f == FEATURE_REEF) {
return "reef";
+ } else if (f == FEATURE_SQUID) {
+ return "squid";
} else if (f == FEATURE_RESERVED) {
return "reserved";
}
return FEATURE_QUINCY;
} else if (n == "reef") {
return FEATURE_REEF;
+ } else if (n == "squid") {
+ return FEATURE_SQUID;
} else if (n == "reserved") {
return FEATURE_RESERVED;
}