Whamcloud - gitweb
b=19427 correct lmm_object_id and reserve fids for fid-on-OST.
[fs/lustre-release.git] / lustre / lov / lov_pack.c
index 0ed24bb..fea8cce 100644 (file)
@@ -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);