if (!session->seq && m->get_seq())
session->seq = m->get_seq();
- feature_bitset_t missing_features(CEPHFS_FEATURES_CLIENT_REQUIRED);
- missing_features -= m->supported_features;
- if (!missing_features.empty()) {
- lderr(cct) << "mds." << from << " lacks required features '"
- << missing_features << "', closing session " << dendl;
- _close_mds_session(session.get());
- _closed_mds_session(session.get(), -CEPHFS_EPERM, true);
- break;
- }
session->mds_features = std::move(m->supported_features);
session->mds_metric_flags = std::move(m->metric_spec.metric_flags);
void MDSMap::set_min_compat_client(ceph_release_t version)
{
- vector<size_t> bits = CEPHFS_FEATURES_MDS_REQUIRED;
+ vector<size_t> bits;
if (version >= ceph_release_t::octopus)
bits.push_back(CEPHFS_FEATURE_OCTOPUS);
}
#define CEPHFS_FEATURES_MDS_SUPPORTED CEPHFS_FEATURES_ALL
-#define CEPHFS_FEATURES_MDS_REQUIRED {}
-
#define CEPHFS_FEATURES_CLIENT_SUPPORTED CEPHFS_FEATURES_ALL
-#define CEPHFS_FEATURES_CLIENT_REQUIRED {}
extern std::string_view cephfs_feature_name(size_t id);
extern int cephfs_feature_from_name(std::string_view name);