X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Flov%2Flov_pack.c;h=fea8ccecd17b86fa80a62ce437b7c64d8302c275;hb=0a859380c36ac24871f221b35042f76c56b04438;hp=0ed24bb750e6ccb29e0de92a64321fc97c8ac16b;hpb=1932a135cf8cedcea2d0f2d5be21edd7fe306251;p=fs%2Flustre-release.git diff --git a/lustre/lov/lov_pack.c b/lustre/lov/lov_pack.c index 0ed24bb..fea8cce 100644 --- a/lustre/lov/lov_pack.c +++ b/lustre/lov/lov_pack.c @@ -59,7 +59,7 @@ static void lov_dump_lmm_common(int level, void *lmmp) struct lov_mds_md *lmm = lmmp; CDEBUG(level, "objid "LPX64", magic 0x%08x, pattern %#x\n", - le64_to_cpu(lmm->lmm_object_id), + (__u64)le64_to_cpu(lmm->lmm_object_id), le32_to_cpu(lmm->lmm_magic), le32_to_cpu(lmm->lmm_pattern)); CDEBUG(level,"stripe_size %u, stripe_count %u\n", @@ -80,8 +80,8 @@ static void lov_dump_lmm_objects(int level, struct lov_ost_data *lod, for (i = 0; i < stripe_count; ++i, ++lod) { CDEBUG(level, "stripe %u idx %u subobj "LPX64"/"LPX64"\n", i, le32_to_cpu(lod->l_ost_idx), - le64_to_cpu(lod->l_object_gr), - le64_to_cpu(lod->l_object_id)); + (__u64)le64_to_cpu(lod->l_object_seq), + (__u64)le64_to_cpu(lod->l_object_id)); } } @@ -215,7 +215,7 @@ int lov_packmd(struct obd_export *exp, struct lov_mds_md **lmmp, * same first fields */ lmmv1->lmm_object_id = cpu_to_le64(lsm->lsm_object_id); - lmmv1->lmm_object_gr = cpu_to_le64(lsm->lsm_object_gr); + lmmv1->lmm_object_seq = cpu_to_le64(lsm->lsm_object_seq); lmmv1->lmm_stripe_size = cpu_to_le32(lsm->lsm_stripe_size); lmmv1->lmm_stripe_count = cpu_to_le32(stripe_count); lmmv1->lmm_pattern = cpu_to_le32(lsm->lsm_pattern); @@ -229,12 +229,11 @@ int lov_packmd(struct obd_export *exp, struct lov_mds_md **lmmp, for (i = 0; i < stripe_count; i++) { struct lov_oinfo *loi = lsm->lsm_oinfo[i]; - /* XXX LOV STACKING call down to osc_packmd() to do packing */ LASSERTF(loi->loi_id, "lmm_oid "LPU64" stripe %u/%u idx %u\n", lmmv1->lmm_object_id, i, stripe_count, loi->loi_ost_idx); lmm_objects[i].l_object_id = cpu_to_le64(loi->loi_id); - lmm_objects[i].l_object_gr = cpu_to_le64(loi->loi_gr); + lmm_objects[i].l_object_seq = cpu_to_le64(loi->loi_seq); lmm_objects[i].l_ost_gen = cpu_to_le32(loi->loi_ost_gen); lmm_objects[i].l_ost_idx = cpu_to_le32(loi->loi_ost_idx); } @@ -303,7 +302,7 @@ int lov_alloc_memmd(struct lov_stripe_md **lsmp, int stripe_count, RETURN(-ENOMEM); } - spin_lock_init(&(*lsmp)->lsm_lock); + cfs_spin_lock_init(&(*lsmp)->lsm_lock); (*lsmp)->lsm_magic = magic; (*lsmp)->lsm_stripe_count = stripe_count; (*lsmp)->lsm_maxbytes = LUSTRE_STRIPE_MAXBYTES * stripe_count; @@ -388,14 +387,15 @@ static int __lov_setstripe(struct obd_export *exp, int max_lmm_size, { struct obd_device *obd = class_exp2obd(exp); struct lov_obd *lov = &obd->u.lov; - struct lov_user_md_v3 lumv3; - struct lov_user_md_v1 *lumv1 = (struct lov_user_md_v1 *)&lumv3; + char buffer[sizeof(struct lov_user_md_v3)]; + struct lov_user_md_v3 *lumv3 = (struct lov_user_md_v3 *)&buffer[0]; + struct lov_user_md_v1 *lumv1 = (struct lov_user_md_v1 *)&buffer[0]; int lmm_magic; int stripe_count; int rc; ENTRY; - if (copy_from_user(&lumv3, lump, sizeof(struct lov_user_md_v1))) + if (cfs_copy_from_user(lumv3, lump, sizeof(struct lov_user_md_v1))) RETURN(-EFAULT); lmm_magic = lumv1->lmm_magic; @@ -404,12 +404,12 @@ static int __lov_setstripe(struct obd_export *exp, int max_lmm_size, lustre_swab_lov_user_md_v1(lumv1); lmm_magic = LOV_USER_MAGIC_V1; } else if (lmm_magic == LOV_USER_MAGIC_V3) { - if (copy_from_user(&lumv3, lump, sizeof(lumv3))) + if (cfs_copy_from_user(lumv3, lump, sizeof(*lumv3))) RETURN(-EFAULT); } else if (lmm_magic == __swab32(LOV_USER_MAGIC_V3)) { - if (copy_from_user(&lumv3, lump, sizeof(lumv3))) + if (cfs_copy_from_user(lumv3, lump, sizeof(*lumv3))) RETURN(-EFAULT); - lustre_swab_lov_user_md_v3(&lumv3); + lustre_swab_lov_user_md_v3(lumv3); lmm_magic = LOV_USER_MAGIC_V3; } else if (lmm_magic != LOV_USER_MAGIC_V1) { CDEBUG(D_IOCTL, @@ -463,12 +463,12 @@ static int __lov_setstripe(struct obd_export *exp, int max_lmm_size, if (lmm_magic == LOV_USER_MAGIC_V3) { struct pool_desc *pool; - pool = lov_find_pool(lov, lumv3.lmm_pool_name); + pool = lov_find_pool(lov, lumv3->lmm_pool_name); if (pool != NULL) { - if (lumv3.lmm_stripe_offset != - (typeof(lumv3.lmm_stripe_offset))(-1)) { + if (lumv3->lmm_stripe_offset != + (typeof(lumv3->lmm_stripe_offset))(-1)) { rc = lov_check_index_in_pool( - lumv3.lmm_stripe_offset, pool); + lumv3->lmm_stripe_offset, pool); if (rc < 0) { lov_pool_putref(pool); RETURN(-EINVAL); @@ -488,7 +488,7 @@ static int __lov_setstripe(struct obd_export *exp, int max_lmm_size, (*lsmp)->lsm_oinfo[0]->loi_ost_idx = lumv1->lmm_stripe_offset; (*lsmp)->lsm_stripe_size = lumv1->lmm_stripe_size; if (lmm_magic == LOV_USER_MAGIC_V3) - strncpy((*lsmp)->lsm_pool_name, lumv3.lmm_pool_name, + strncpy((*lsmp)->lsm_pool_name, lumv3->lmm_pool_name, LOV_MAXPOOLNAME); rc = 0; } @@ -558,7 +558,7 @@ int lov_setea(struct obd_export *exp, struct lov_stripe_md **lsmp, (*lsmp)->lsm_oinfo[i]->loi_ost_idx = lmm_objects[i].l_ost_idx; (*lsmp)->lsm_oinfo[i]->loi_id = lmm_objects[i].l_object_id; - (*lsmp)->lsm_oinfo[i]->loi_gr = lmm_objects[i].l_object_gr; + (*lsmp)->lsm_oinfo[i]->loi_seq = lmm_objects[i].l_object_seq; } RETURN(0); } @@ -597,7 +597,7 @@ int lov_getstripe(struct obd_export *exp, struct lov_stripe_md *lsm, /* we only need the header part from user space to get lmm_magic and * lmm_stripe_count, (the header part is common to v1 and v3) */ lum_size = sizeof(struct lov_user_md_v1); - if (copy_from_user(&lum, lump, lum_size)) + if (cfs_copy_from_user(&lum, lump, lum_size)) GOTO(out_set, rc = -EFAULT); else if ((lum.lmm_magic != LOV_USER_MAGIC) && (lum.lmm_magic != LOV_USER_MAGIC_V3)) @@ -607,7 +607,7 @@ int lov_getstripe(struct obd_export *exp, struct lov_stripe_md *lsm, (lum.lmm_stripe_count < lsm->lsm_stripe_count)) { /* Return right size of stripe to user */ lum.lmm_stripe_count = lsm->lsm_stripe_count; - rc = copy_to_user(lump, &lum, lum_size); + rc = cfs_copy_to_user(lump, &lum, lum_size); GOTO(out_set, rc = -EOVERFLOW); } rc = lov_packmd(exp, &lmmk, lsm); @@ -656,7 +656,7 @@ int lov_getstripe(struct obd_export *exp, struct lov_stripe_md *lsm, lum.lmm_stripe_count = lmmk->lmm_stripe_count; ((struct lov_user_md*)lmmk)->lmm_stripe_offset = 0; ((struct lov_user_md*)lmmk)->lmm_stripe_count = lum.lmm_stripe_count; - if (copy_to_user(lump, lmmk, lmm_size)) + if (cfs_copy_to_user(lump, lmmk, lmm_size)) rc = -EFAULT; obd_free_diskmd(exp, &lmmk);