X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Fmd_attrs.c;h=979c52dc745d95fbfbf37e1d39625905faba6e1d;hb=7a02c78d18b9fec17efa24c5807d80d8faaaee9b;hp=c82e7f9316bb9c043cfe26e7b42f3ac0f064143e;hpb=adc9384fd11b7fb3b71b363c310c9fa7b37e469f;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/md_attrs.c b/lustre/obdclass/md_attrs.c index c82e7f9..979c52d 100644 --- a/lustre/obdclass/md_attrs.c +++ b/lustre/obdclass/md_attrs.c @@ -21,13 +21,16 @@ * GPL HEADER END */ /* - * Copyright (c) 2012, 2013, Intel Corporation. + * Copyright (c) 2012, 2016, Intel Corporation. * Use is subject to license terms. * * Author: Johann Lombardi */ #include + +#include +#include #include #include @@ -60,75 +63,15 @@ EXPORT_SYMBOL(lustre_lma_init); */ void lustre_lma_swab(struct lustre_mdt_attrs *lma) { - /* Use LUSTRE_MSG_MAGIC to detect local endianess. */ - if (LUSTRE_MSG_MAGIC != cpu_to_le32(LUSTRE_MSG_MAGIC)) { - __swab32s(&lma->lma_compat); - __swab32s(&lma->lma_incompat); - lustre_swab_lu_fid(&lma->lma_self_fid); - } +#ifdef __BIG_ENDIAN + __swab32s(&lma->lma_compat); + __swab32s(&lma->lma_incompat); + lustre_swab_lu_fid(&lma->lma_self_fid); +#endif }; EXPORT_SYMBOL(lustre_lma_swab); /** - * Swab, if needed, SOM structure which is stored on-disk in little-endian - * order. - * - * \param attrs - is a pointer to the SOM structure to be swabbed. - */ -void lustre_som_swab(struct som_attrs *attrs) -{ - /* Use LUSTRE_MSG_MAGIC to detect local endianess. */ - if (LUSTRE_MSG_MAGIC != cpu_to_le32(LUSTRE_MSG_MAGIC)) { - __swab32s(&attrs->som_compat); - __swab32s(&attrs->som_incompat); - __swab64s(&attrs->som_ioepoch); - __swab64s(&attrs->som_size); - __swab64s(&attrs->som_blocks); - __swab64s(&attrs->som_mountid); - } -}; -EXPORT_SYMBOL(lustre_som_swab); - -/* - * Swab and extract SOM attributes from on-disk xattr. - * - * \param buf - is a buffer containing the on-disk SOM extended attribute. - * \param rc - is the SOM xattr stored in \a buf - * \param msd - is the md_som_data structure where to extract SOM attributes. - */ -int lustre_buf2som(void *buf, int rc, struct md_som_data *msd) -{ - struct som_attrs *attrs = (struct som_attrs *)buf; - ENTRY; - - if (rc == 0 || rc == -ENODATA) - /* no SOM attributes */ - RETURN(-ENODATA); - - if (rc < 0) - /* error hit while fetching xattr */ - RETURN(rc); - - /* check SOM compatibility */ - if (attrs->som_incompat & ~cpu_to_le32(SOM_INCOMPAT_SUPP)) - RETURN(-ENODATA); - - /* unpack SOM attributes */ - lustre_som_swab(attrs); - - /* fill in-memory msd structure */ - msd->msd_compat = attrs->som_compat; - msd->msd_incompat = attrs->som_incompat; - msd->msd_ioepoch = attrs->som_ioepoch; - msd->msd_size = attrs->som_size; - msd->msd_blocks = attrs->som_blocks; - msd->msd_mountid = attrs->som_mountid; - - RETURN(0); -} -EXPORT_SYMBOL(lustre_buf2som); - -/** * Swab, if needed, HSM structure which is stored on-disk in little-endian * order. * @@ -136,13 +79,12 @@ EXPORT_SYMBOL(lustre_buf2som); */ void lustre_hsm_swab(struct hsm_attrs *attrs) { - /* Use LUSTRE_MSG_MAGIC to detect local endianess. */ - if (LUSTRE_MSG_MAGIC != cpu_to_le32(LUSTRE_MSG_MAGIC)) { - __swab32s(&attrs->hsm_compat); - __swab32s(&attrs->hsm_flags); - __swab64s(&attrs->hsm_arch_id); - __swab64s(&attrs->hsm_arch_ver); - } +#ifdef __BIG_ENDIAN + __swab32s(&attrs->hsm_compat); + __swab32s(&attrs->hsm_flags); + __swab64s(&attrs->hsm_arch_id); + __swab64s(&attrs->hsm_arch_ver); +#endif }; /*