From b8edd288da20d2a5dc2ab7398bb5c1b47b716f12 Mon Sep 17 00:00:00 2001 From: anserper Date: Thu, 18 Sep 2008 21:57:53 +0000 Subject: [PATCH] Branch b1_8_gate b=16935 i=Johann Lombardi i=Alexey Lyashkov remove swabbing for directories --- lustre/llite/dir.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/lustre/llite/dir.c b/lustre/llite/dir.c index 8d6d123..8bee3df 100644 --- a/lustre/llite/dir.c +++ b/lustre/llite/dir.c @@ -1039,18 +1039,19 @@ int ll_dir_getstripe(struct inode *inode, struct lov_mds_md **lmmp, * little endian. We convert it to host endian before * passing it to userspace. */ - if (LOV_MAGIC != cpu_to_le32(LOV_MAGIC)) { - if (cpu_to_le32(LOV_MAGIC_V1) == lmm->lmm_magic) { - lustre_swab_lov_user_md_v1((struct lov_user_md_v1 *)lmm); - lustre_swab_lov_user_md_objects( - ((struct lov_user_md_v1 *)lmm)->lmm_objects, - ((struct lov_user_md_v1 *)lmm)->lmm_stripe_count); - } else if (cpu_to_le32(LOV_MAGIC_V3) == lmm->lmm_magic) { - lustre_swab_lov_user_md_v3((struct lov_user_md_v3 *)lmm); - lustre_swab_lov_user_md_objects( - ((struct lov_user_md_v3 *)lmm)->lmm_objects, - ((struct lov_user_md_v3 *)lmm)->lmm_stripe_count); - } + /* We don't swab objects for directories */ + switch (le32_to_cpu(lmm->lmm_magic)) { + case LOV_MAGIC_V1: + if (LOV_MAGIC != cpu_to_le32(LOV_MAGIC)) + lustre_swab_lov_user_md_v1((struct lov_user_md_v1 *)lmm); + break; + case LOV_MAGIC_V3: + if (LOV_MAGIC != cpu_to_le32(LOV_MAGIC)) + lustre_swab_lov_user_md_v3((struct lov_user_md_v3 *)lmm); + break; + default: + CERROR("unknown magic: %lX\n", (unsigned long)lmm->lmm_magic); + rc = -EPROTO; } out: -- 1.8.3.1