|
@@ -85,6 +85,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
|
|
|
struct ceph_entity_addr addr;
|
|
|
u32 num_export_targets;
|
|
|
void *pexport_targets = NULL;
|
|
|
+ struct ceph_timespec laggy_since;
|
|
|
|
|
|
ceph_decode_need(p, end, sizeof(u64)*2 + 1 + sizeof(u32), bad);
|
|
|
global_id = ceph_decode_64(p);
|
|
@@ -103,7 +104,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
|
|
|
state_seq = ceph_decode_64(p);
|
|
|
ceph_decode_copy(p, &addr, sizeof(addr));
|
|
|
ceph_decode_addr(&addr);
|
|
|
- *p += sizeof(struct ceph_timespec);
|
|
|
+ ceph_decode_copy(p, &laggy_since, sizeof(laggy_since));
|
|
|
*p += sizeof(u32);
|
|
|
ceph_decode_32_safe(p, end, namelen, bad);
|
|
|
*p += namelen;
|
|
@@ -122,6 +123,9 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
|
|
|
m->m_info[mds].global_id = global_id;
|
|
|
m->m_info[mds].state = state;
|
|
|
m->m_info[mds].addr = addr;
|
|
|
+ m->m_info[mds].laggy =
|
|
|
+ (laggy_since.tv_sec != 0 ||
|
|
|
+ laggy_since.tv_nsec != 0);
|
|
|
m->m_info[mds].num_export_targets = num_export_targets;
|
|
|
if (num_export_targets) {
|
|
|
m->m_info[mds].export_targets =
|