beacon->set_standby_for_name(standby_for_name);
// include _my_ feature set
- CompatSet mdsmap_compat(get_mdsmap_compat_set());
+ CompatSet mdsmap_compat(get_mdsmap_compat_set_default());
+ mdsmap_compat.merge(mdsmap->compat);
beacon->set_compat(mdsmap_compat);
monc->send_mon_message(beacon);
monc->sub_got("mdsmap", mdsmap->get_epoch());
// verify compatset
- CompatSet mdsmap_compat(get_mdsmap_compat_set());
+ CompatSet mdsmap_compat(get_mdsmap_compat_set_all());
dout(10) << " my compat " << mdsmap_compat << dendl;
dout(10) << " mdsmap compat " << mdsmap->compat << dendl;
if (!mdsmap_compat.writeable(mdsmap->compat)) {
// features
-CompatSet get_mdsmap_compat_set() {
+CompatSet get_mdsmap_compat_set_all() {
+ CompatSet::FeatureSet feature_compat;
+ CompatSet::FeatureSet feature_ro_compat;
+ CompatSet::FeatureSet feature_incompat;
+ feature_incompat.insert(MDS_FEATURE_INCOMPAT_BASE);
+ feature_incompat.insert(MDS_FEATURE_INCOMPAT_CLIENTRANGES);
+ feature_incompat.insert(MDS_FEATURE_INCOMPAT_FILELAYOUT);
+ feature_incompat.insert(MDS_FEATURE_INCOMPAT_DIRINODE);
+ feature_incompat.insert(MDS_FEATURE_INCOMPAT_ENCODING);
+ feature_incompat.insert(MDS_FEATURE_INCOMPAT_OMAPDIRFRAG);
+ feature_incompat.insert(MDS_FEATURE_INCOMPAT_INLINE);
+
+ return CompatSet(feature_compat, feature_ro_compat, feature_incompat);
+}
+
+CompatSet get_mdsmap_compat_set_default() {
CompatSet::FeatureSet feature_compat;
CompatSet::FeatureSet feature_ro_compat;
CompatSet::FeatureSet feature_incompat;
m->data_pools.insert(0);
m->metadata_pool = 1;
m->cas_pool = 2;
- m->compat = get_mdsmap_compat_set();
+ m->compat = get_mdsmap_compat_set_all();
// these aren't the defaults, just in case anybody gets confused
m->session_timeout = 61;
class CephContext;
-extern CompatSet get_mdsmap_compat_set();
+extern CompatSet get_mdsmap_compat_set_all();
+extern CompatSet get_mdsmap_compat_set_default();
extern CompatSet get_mdsmap_compat_set_base(); // pre v0.20
#define MDS_FEATURE_INCOMPAT_BASE CompatSet::Feature(1, "base v0.20")
m.data_pools.insert(data_pool);
m.metadata_pool = metadata_pool;
m.cas_pool = -1;
- m.compat = get_mdsmap_compat_set();
+ m.compat = get_mdsmap_compat_set_default();
m.session_timeout = g_conf->mds_session_timeout;
m.session_autoclose = g_conf->mds_session_autoclose;