From: John L. Hammond Date: Wed, 8 May 2013 02:46:39 +0000 (-0500) Subject: LU-3268 lod: return root LOV EA in little-endian X-Git-Tag: 2.4.53~74 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=4a1f10ef775b2b1a4631ee2f12bff3330b941e45 LU-3268 lod: return root LOV EA in little-endian In lod_xattr_get() when constructing LOV EA to return for the filesystem root, store members in little-endian byte order for consistency with EAs from disk. Signed-off-by: John L. Hammond Change-Id: Id76da869e14ff71b8af21fe2b1d66abd54da0a2d Reviewed-on: http://review.whamcloud.com/6285 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Li Wei Reviewed-by: Alex Zhuravlev Reviewed-by: Oleg Drokin --- diff --git a/lustre/lod/lod_object.c b/lustre/lod/lod_object.c index e3180e2..b237401 100644 --- a/lustre/lod/lod_object.c +++ b/lustre/lod/lod_object.c @@ -387,15 +387,19 @@ static int lod_xattr_get(const struct lu_env *env, struct dt_object *dt, struct lov_desc *desc = &dev->lod_desc; if (buf->lb_buf == NULL) { - rc = sizeof(struct lov_user_md_v1); - } else if (buf->lb_len >= sizeof(struct lov_user_md_v1)) { - lum->lmm_magic = LOV_USER_MAGIC_V1; + rc = sizeof(*lum); + } else if (buf->lb_len >= sizeof(*lum)) { + lum->lmm_magic = cpu_to_le32(LOV_USER_MAGIC_V1); lmm_oi_set_seq(&lum->lmm_oi, FID_SEQ_LOV_DEFAULT); - lum->lmm_pattern = desc->ld_pattern; - lum->lmm_stripe_size = desc->ld_default_stripe_size; - lum->lmm_stripe_count = desc->ld_default_stripe_count; - lum->lmm_stripe_offset = desc->ld_default_stripe_offset; - rc = sizeof(struct lov_user_md_v1); + lmm_oi_cpu_to_le(&lum->lmm_oi, &lum->lmm_oi); + lum->lmm_pattern = cpu_to_le32(desc->ld_pattern); + lum->lmm_stripe_size = cpu_to_le32( + desc->ld_default_stripe_size); + lum->lmm_stripe_count = cpu_to_le16( + desc->ld_default_stripe_count); + lum->lmm_stripe_offset = cpu_to_le16( + desc->ld_default_stripe_offset); + rc = sizeof(*lum); } else { rc = -ERANGE; }