Whamcloud - gitweb
LU-3529 lod: create striped directory
[fs/lustre-release.git] / lustre / include / lustre_lmv.h
index a85c6d7..ce0bfa6 100644 (file)
@@ -60,4 +60,60 @@ int lmv_alloc_md(union lmv_mds_md **lmmp, int stripe_count);
 void lmv_free_md(union lmv_mds_md *lmm);
 int lmv_alloc_memmd(struct lmv_stripe_md **lsmp, int stripe_count);
 void lmv_free_memmd(struct lmv_stripe_md *lsm);
+
+static inline void lmv1_cpu_to_le(struct lmv_mds_md_v1 *lmv_dst,
+                                 const struct lmv_mds_md_v1 *lmv_src)
+{
+       int i;
+
+       lmv_dst->lmv_magic = cpu_to_le32(lmv_src->lmv_magic);
+       lmv_dst->lmv_stripe_count = cpu_to_le32(lmv_src->lmv_stripe_count);
+       lmv_dst->lmv_master_mdt_index =
+                       cpu_to_le32(lmv_src->lmv_master_mdt_index);
+       lmv_dst->lmv_hash_type = cpu_to_le32(lmv_src->lmv_hash_type);
+       lmv_dst->lmv_layout_version = cpu_to_le32(lmv_src->lmv_layout_version);
+       for (i = 0; i < lmv_src->lmv_stripe_count; i++)
+               fid_cpu_to_le(&lmv_dst->lmv_stripe_fids[i],
+                             &lmv_src->lmv_stripe_fids[i]);
+}
+
+static inline void lmv1_le_to_cpu(struct lmv_mds_md_v1 *lmv_dst,
+                                 const struct lmv_mds_md_v1 *lmv_src)
+{
+       int i;
+
+       lmv_dst->lmv_magic = le32_to_cpu(lmv_src->lmv_magic);
+       lmv_dst->lmv_stripe_count = le32_to_cpu(lmv_src->lmv_stripe_count);
+       lmv_dst->lmv_master_mdt_index =
+                               le32_to_cpu(lmv_src->lmv_master_mdt_index);
+       lmv_dst->lmv_hash_type = le32_to_cpu(lmv_src->lmv_hash_type);
+       lmv_dst->lmv_layout_version = le32_to_cpu(lmv_src->lmv_layout_version);
+       for (i = 0; i < lmv_src->lmv_stripe_count; i++)
+               fid_le_to_cpu(&lmv_dst->lmv_stripe_fids[i],
+                             &lmv_src->lmv_stripe_fids[i]);
+}
+
+static inline void lmv_cpu_to_le(union lmv_mds_md *lmv_dst,
+                                const union lmv_mds_md *lmv_src)
+{
+       switch (lmv_src->lmv_magic) {
+       case LMV_MAGIC_V1:
+               lmv1_cpu_to_le(&lmv_dst->lmv_md_v1, &lmv_src->lmv_md_v1);
+               break;
+       default:
+               break;
+       }
+}
+
+static inline void lmv_le_to_cpu(union lmv_mds_md *lmv_dst,
+                                const union lmv_mds_md *lmv_src)
+{
+       switch (le32_to_cpu(lmv_src->lmv_magic)) {
+       case LMV_MAGIC_V1:
+               lmv1_le_to_cpu(&lmv_dst->lmv_md_v1, &lmv_src->lmv_md_v1);
+               break;
+       default:
+               break;
+       }
+}
 #endif