X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Flod%2Flod_object.c;h=6179e4db7db08ec6e52f13eb42e26ef0b6b86b46;hb=61bcfb2ff55edf6df2a3735b08bbeb479b598833;hp=9eeda284daaec55fdf80c2dcc09c06ca154b5471;hpb=a61ff5914bf6b784b22eea0625bb8b61d7bea950;p=fs%2Flustre-release.git diff --git a/lustre/lod/lod_object.c b/lustre/lod/lod_object.c index 9eeda28..6179e4d 100644 --- a/lustre/lod/lod_object.c +++ b/lustre/lod/lod_object.c @@ -31,9 +31,6 @@ * Author: Alex Zhuravlev */ -#ifndef EXPORT_SYMTAB -# define EXPORT_SYMTAB -#endif #define DEBUG_SUBSYSTEM S_MDS #include @@ -49,7 +46,7 @@ #include "lod_internal.h" -extern cfs_mem_cache_t *lod_object_kmem; +extern struct kmem_cache *lod_object_kmem; static const struct dt_body_operations lod_body_lnk_ops; static int lod_index_lookup(const struct lu_env *env, struct dt_object *dt, @@ -390,15 +387,20 @@ 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_set_id(&lum->lmm_oi, 0); + 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; } @@ -482,8 +484,7 @@ static int lod_xattr_set_lov_on_dir(const struct lu_env *env, l->ldo_def_stripe_size = 0; l->ldo_def_stripenr = 0; - LASSERT(buf); - LASSERT(buf->lb_buf); + LASSERT(buf != NULL && buf->lb_buf != NULL); lum = buf->lb_buf; rc = lod_verify_striping(d, buf, 0); @@ -677,7 +678,7 @@ static void lod_ah_init(const struct lu_env *env, struct dt_allocation_hint *ah, struct dt_object *parent, struct dt_object *child, - cfs_umode_t child_mode) + umode_t child_mode) { struct lod_device *d = lu2lod_dev(child->do_lu.lo_dev); struct dt_object *nextp = NULL; @@ -706,7 +707,8 @@ static void lod_ah_init(const struct lu_env *env, * can be called with local object existing */ if (!dt_object_exists(nextc) || dt_object_remote(nextc)) - nextc->do_ops->do_ah_init(env, ah, nextp, nextc, child_mode); + nextc->do_ops->do_ah_init(env, ah, dt_object_remote(nextp) ? + NULL : nextp, nextc, child_mode); if (S_ISDIR(child_mode)) { if (lp->ldo_striping_cached == 0) {