- struct lov_object_id *loi;
- int idx;
-
- CDEBUG(level, "objid "LPX64", magic %#08x, ost_count %u\n",
- lmm->lmm_object_id, lmm->lmm_magic, lmm->lmm_ost_count);
- CDEBUG(level,"stripe_size %u, stripe_count %u, stripe_offset %u\n",
- lmm->lmm_stripe_size, lmm->lmm_stripe_count,
- lmm->lmm_stripe_offset);
- for (idx = 0, loi = lmm->lmm_objects; idx < lmm->lmm_ost_count;
- idx++, loi++)
- CDEBUG(level, "ost idx %u subobj "LPX64"\n", idx,
- loi->l_object_id);
+
+ CDEBUG(level, "objid "LPX64", magic 0x%08X, pattern %#X\n",
+ le64_to_cpu(lmmj->lmmj_md.lmm_object_id),
+ le32_to_cpu(lmmj->lmmj_md.lmm_magic),
+ le32_to_cpu(lmmj->lmmj_md.lmm_pattern));
+ CDEBUG(level,"stripe_size %u, stripe_count %u extent_count %u \n",
+ le32_to_cpu(lmmj->lmmj_md.lmm_stripe_size),
+ le32_to_cpu(lmmj->lmmj_md.lmm_stripe_count),
+ le32_to_cpu(lmmj->lmmj_extent_count));
+}
+
+void lov_dump_lmm_v3(int level, struct lov_mds_md_v3 *lmm)
+{
+ struct lov_ost_data_v1 *lod;
+ int i;
+
+ CDEBUG(level, "objid "LPX64", magic 0x%08x, pattern %#x\n",
+ le64_to_cpu(lmm->lmm_object_id), le32_to_cpu(lmm->lmm_magic),
+ le32_to_cpu(lmm->lmm_pattern));
+ CDEBUG(level,"stripe_size %u, stripe_count %u\n",
+ le32_to_cpu(lmm->lmm_stripe_size),
+ le32_to_cpu(lmm->lmm_stripe_count));
+ CDEBUG(level,"pool_name "LOV_POOLNAMEF"\n", lmm->lmm_pool_name);
+
+ if (le32_to_cpu(lmm->lmm_stripe_count) <= LOV_V1_INSANE_STRIPE_COUNT) {
+ for (i = 0, lod = lmm->lmm_objects;
+ i < (int)le32_to_cpu(lmm->lmm_stripe_count); i++, lod++)
+ CDEBUG(level,
+ "stripe %u idx %u subobj "LPX64"/"LPX64"\n",
+ i, le32_to_cpu(lod->l_ost_idx),
+ le64_to_cpu(lod->l_object_gr),
+ le64_to_cpu(lod->l_object_id));
+ } else {
+ CDEBUG(level, "bad stripe_count %u > max_stripe_count %u\n",
+ le32_to_cpu(lmm->lmm_stripe_count),
+ LOV_V1_INSANE_STRIPE_COUNT);
+ }
+}
+
+void lov_dump_lmm(int level, void *lmm)
+{
+ int magic;
+
+ magic = ((struct lov_mds_md_v1 *)(lmm))->lmm_magic;
+ switch (magic) {
+ case LOV_MAGIC_V1:
+ return lov_dump_lmm_v1(level, (struct lov_mds_md_v1 *)(lmm));
+ case LOV_MAGIC_JOIN:
+ return lov_dump_lmm_join(level, (struct lov_mds_md_join *)(lmm));
+ case LOV_MAGIC_V3:
+ return lov_dump_lmm_v3(level, (struct lov_mds_md_v3 *)(lmm));
+ default:
+ CERROR("Cannot recognize lmm_magic %x", magic);
+ }
+ return;