Commit da08e1e1 authored by Xiubo Li's avatar Xiubo Li Committed by Ilya Dryomov
Browse files

ceph: add more debug info when decoding mdsmap



Show the laggy state.

Signed-off-by: default avatarXiubo Li <xiubli@redhat.com>
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
parent bd84fbcb
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -158,6 +158,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
		void *pexport_targets = NULL;
		struct ceph_timespec laggy_since;
		struct ceph_mds_info *info;
		bool laggy;

		ceph_decode_need(p, end, sizeof(u64) + 1, bad);
		global_id = ceph_decode_64(p);
@@ -190,6 +191,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
		if (err)
			goto corrupt;
		ceph_decode_copy(p, &laggy_since, sizeof(laggy_since));
		laggy = laggy_since.tv_sec != 0 || laggy_since.tv_nsec != 0;
		*p += sizeof(u32);
		ceph_decode_32_safe(p, end, namelen, bad);
		*p += namelen;
@@ -207,10 +209,11 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
			*p = info_end;
		}

		dout("mdsmap_decode %d/%d %lld mds%d.%d %s %s\n",
		dout("mdsmap_decode %d/%d %lld mds%d.%d %s %s%s\n",
		     i+1, n, global_id, mds, inc,
		     ceph_pr_addr(&addr),
		     ceph_mds_state_name(state));
		     ceph_mds_state_name(state),
		     laggy ? "(laggy)" : "");

		if (mds < 0 || state <= 0)
			continue;
@@ -230,8 +233,7 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
		info->global_id = global_id;
		info->state = state;
		info->addr = addr;
		info->laggy = (laggy_since.tv_sec != 0 ||
			       laggy_since.tv_nsec != 0);
		info->laggy = laggy;
		info->num_export_targets = num_export_targets;
		if (num_export_targets) {
			info->export_targets = kcalloc(num_export_targets,
@@ -355,6 +357,8 @@ struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end)
		m->m_damaged = false;
	}
bad_ext:
	dout("mdsmap_decode m_enabled: %d, m_damaged: %d, m_num_laggy: %d\n",
	     !!m->m_enabled, !!m->m_damaged, m->m_num_laggy);
	*p = end;
	dout("mdsmap_decode success epoch %u\n", m->m_epoch);
	return m;