Whamcloud - gitweb
add explicit padding to struct osd_inode_id to work correctly on 64bits. Chnages...
authornikita <nikita>
Wed, 12 Jul 2006 18:27:02 +0000 (18:27 +0000)
committernikita <nikita>
Wed, 12 Jul 2006 18:27:02 +0000 (18:27 +0000)
lustre/osd/osd_handler.c
lustre/osd/osd_oi.c
lustre/osd/osd_oi.h

index de3135c..230a700 100644 (file)
@@ -1351,7 +1351,7 @@ static int osd_fid_lookup(const struct lu_context *ctx,
         struct osd_thread_info *info;
         struct lu_device       *ldev = obj->oo_dt.do_lu.lo_dev;
         struct osd_device      *dev;
-        struct osd_inode_id     id;
+        struct osd_inode_id    *id;
         struct osd_oi          *oi;
         struct inode           *inode;
         int                     result;
@@ -1365,16 +1365,16 @@ static int osd_fid_lookup(const struct lu_context *ctx,
 
         info = lu_context_key_get(ctx, &osd_key);
         dev  = osd_dev(ldev);
-
-        oi = &dev->od_oi;
+        id   = &info->oti_id;
+        oi   = &dev->od_oi;
 
         if (OBD_FAIL_CHECK(OBD_FAIL_OST_ENOENT))
                 RETURN(-ENOENT);
 
         osd_oi_read_lock(oi);
-        result = osd_oi_lookup(info, oi, fid, &id);
+        result = osd_oi_lookup(info, oi, fid, id);
         if (result == 0) {
-                inode = osd_iget(info, dev, &id);
+                inode = osd_iget(info, dev, id);
                 if (!IS_ERR(inode)) {
                         obj->oo_inode = inode;
                         LASSERT(obj->oo_inode->i_sb == osd_sb(dev));
index 6253b06..8044091 100644 (file)
@@ -60,8 +60,8 @@ static const struct dt_index_features oi_index_features = {
         .dif_flags       = DT_IND_UPDATE,
         .dif_keysize_min = sizeof(struct lu_fid),
         .dif_keysize_max = sizeof(struct lu_fid),
-        .dif_recsize_min = sizeof(__u64) + sizeof(__u32),
-        .dif_recsize_max = sizeof(__u64) + sizeof(__u32)
+        .dif_recsize_min = sizeof(struct osd_inode_id),
+        .dif_recsize_max = sizeof(struct osd_inode_id)
 };
 
 int osd_oi_init(struct osd_thread_info *info,
index 939ee76..b7476eb 100644 (file)
@@ -52,6 +52,7 @@ struct osd_oi {
 struct osd_inode_id {
         __u64 oii_ino;
         __u32 oii_gen;
+        __u32 oii_pad;
 };
 
 enum {