::encode(stopped, bl);
::encode(last_failure_osd_epoch, bl);
} else {// have MDS encoding feature!
- ENCODE_START(4, 4, bl);
+ ENCODE_START(5, 5, bl);
::encode(epoch, bl);
::encode(flags, bl);
::encode(last_failure, bl);
::encode(mds_info, bl, features);
::encode(data_pools, bl);
::encode(cas_pool, bl);
+ ::encode(enabled, bl);
// kclient ignores everything from here
__u16 ev = 7;
void MDSMap::decode(bufferlist::iterator& p)
{
- DECODE_START_LEGACY_COMPAT_LEN_16(4, 4, 4, p);
+ DECODE_START_LEGACY_COMPAT_LEN_16(5, 4, 4, p);
::decode(epoch, p);
::decode(flags, p);
::decode(last_failure, p);
::decode(data_pools, p);
::decode(cas_pool, p);
}
+ if (struct_v >= 5) {
+ ::decode(enabled, p);
+ }
// kclient ignores everything from here
__u16 ev = 1;
protected:
// base map
epoch_t epoch;
+ bool enabled;
uint32_t flags; // flags
epoch_t last_failure; // mds epoch of last failure
epoch_t last_failure_osd_epoch; // osd epoch of last failure; any mds entering replay needs
public:
MDSMap()
- : epoch(0), flags(0), last_failure(0), last_failure_osd_epoch(0), tableserver(0), root(0),
+ : epoch(0), enabled(false), flags(0), last_failure(0), last_failure_osd_epoch(0), tableserver(0), root(0),
session_timeout(0),
session_autoclose(0),
max_file_size(0),
void MDSMonitor::create_new_fs(MDSMap &m, int metadata_pool, int data_pool)
{
+ m.enabled = true;
m.max_mds = g_conf->max_mds;
m.created = ceph_clock_now(g_ceph_context);
m.data_pools.insert(data_pool);