+ lmu->lum_stripe_offset = lsa.lsa_stripe_off;
+ if (lsa.lsa_pattern != LLAPI_LAYOUT_RAID0)
+ lmu->lum_hash_type = lsa.lsa_pattern;
+ else
+ lmu->lum_hash_type = LMV_HASH_TYPE_FNV_1A_64;
+ if (lsa.lsa_pool_name)
+ strncpy(lmu->lum_pool_name, lsa.lsa_pool_name,
+ sizeof(lmu->lum_pool_name));
+ if (lsa.lsa_nr_tgts > 1) {
+ int i;
+
+ if (lsa.lsa_stripe_count > 0 &&
+ lsa.lsa_stripe_count != LLAPI_LAYOUT_DEFAULT &&
+ lsa.lsa_stripe_count != lsa.lsa_nr_tgts) {
+ fprintf(stderr,
+ "error: %s: stripe count %lld doesn't match the number of MDTs: %d\n",
+ progname, lsa.lsa_stripe_count,
+ lsa.lsa_nr_tgts);
+ free(lmu);
+ goto usage_error;
+ }
+
+ lmu->lum_magic = LMV_USER_MAGIC_SPECIFIC;
+ lmu->lum_stripe_count = lsa.lsa_nr_tgts;
+ for (i = 0; i < lsa.lsa_nr_tgts; i++)
+ lmu->lum_objects[i].lum_mds = lsa.lsa_tgts[i];
+ } else {
+ lmu->lum_magic = LMV_USER_MAGIC;
+ }
+
+ migrate_mdt_param.fp_lmv_md = lmu;