#define CEPH_MDS_PROTOCOL 9 /* cluster internal */
#define CEPH_MON_PROTOCOL 4 /* cluster internal */
#define CEPH_OSDC_PROTOCOL 19 /* server/client */
-#define CEPH_MDSC_PROTOCOL 27 /* server/client */
+#define CEPH_MDSC_PROTOCOL 28 /* server/client */
#define CEPH_MONC_PROTOCOL 14 /* server/client */
struct ceph_mdsmap *m;
int i, n;
int err = -EINVAL;
+ u16 version;
m = kzalloc(sizeof(*m), GFP_NOFS);
if (m == NULL)
return ERR_PTR(-ENOMEM);
- ceph_decode_need(p, end, 8*sizeof(u32) + sizeof(u64), bad);
+ ceph_decode_need(p, end, sizeof(u16) + 8*sizeof(u32) + sizeof(u64),bad);
+ ceph_decode_16(p, version);
ceph_decode_32(p, m->m_epoch);
ceph_decode_32(p, m->m_client_epoch);
ceph_decode_32(p, m->m_last_failure);
u32 namelen;
s32 mds, inc, state;
u64 state_seq;
+ u16 infoversion;
struct ceph_entity_addr addr;
ceph_decode_need(p, end, sizeof(addr) + sizeof(u32), bad);
*p += sizeof(addr); /* skip addr key */
ceph_decode_32(p, namelen);
*p += namelen;
- ceph_decode_need(p, end, 6*sizeof(u32) + sizeof(addr) +
+ ceph_decode_need(p, end,
+ sizeof(u16) + 6*sizeof(u32) + sizeof(addr) +
sizeof(struct ceph_timespec), bad);
+ ceph_decode_16(p, infoversion);
ceph_decode_32(p, mds);
ceph_decode_32(p, inc);
ceph_decode_32(p, state);
entity_inst_t get_inst() const { return entity_inst_t(entity_name_t::MDS(rank), addr); }
void encode(bufferlist& bl) const {
+ __u16 v = 1;
+ ::encode(v, bl);
::encode(name, bl);
::encode(rank, bl);
::encode(inc, bl);
::encode(standby_for_name, bl);
}
void decode(bufferlist::iterator& bl) {
+ __u16 v;
+ ::decode(v, bl);
::decode(name, bl);
::decode(rank, bl);
::decode(inc, bl);
void encode(bufferlist& bl) const {
+ __u16 v = 1;
+ ::encode(v, bl);
::encode(epoch, bl);
::encode(client_epoch, bl);
::encode(last_failure, bl);
::encode(stopped, bl);
}
void decode(bufferlist::iterator& p) {
+ __u16 v;
+ ::decode(v, p);
::decode(epoch, p);
::decode(client_epoch, p);
::decode(last_failure, p);