Whamcloud - gitweb
- osc_create was setting lmd_stripe_count to 1 instead of 0
authorpschwan <pschwan>
Mon, 9 Sep 2002 18:00:50 +0000 (18:00 +0000)
committerpschwan <pschwan>
Mon, 9 Sep 2002 18:00:50 +0000 (18:00 +0000)
- ll_read_inode2 was requiring lmd_stripe_count to be non-zero; instead, we now
  check the magic number in ll_lookup2 before calling iget

lustre/lib/l_net.c
lustre/lib/lov_pack.c
lustre/llite/namei.c
lustre/llite/super.c
lustre/lov/lov_obd.c
lustre/osc/osc_request.c

index 07369bc..39f74c5 100644 (file)
@@ -167,7 +167,6 @@ int client_obd_connect(struct lustre_handle *conn, struct obd_device *obd,
 
         recovd_conn_manage(c, ptlrpc_recovd, ll_recover);
 
-
         EXIT;
 out_req:
         ptlrpc_free_req(request);
index 1a2dd94..19b8301 100644 (file)
 
 void lov_packdesc(struct lov_desc *ld)
 {
-        ld->ld_tgt_count = HTON__u32(ld->ld_tgt_count); 
-        ld->ld_default_stripe_count = HTON__u32(ld->ld_default_stripe_count); 
-        ld->ld_default_stripe_size = HTON__u32(ld->ld_default_stripe_size); 
-        ld->ld_pattern = HTON__u32(ld->ld_pattern); 
+        ld->ld_tgt_count = HTON__u32(ld->ld_tgt_count);
+        ld->ld_default_stripe_count = HTON__u32(ld->ld_default_stripe_count);
+        ld->ld_default_stripe_size = HTON__u32(ld->ld_default_stripe_size);
+        ld->ld_pattern = HTON__u32(ld->ld_pattern);
 }
 
 void lov_unpackdesc(struct lov_desc *ld)
 {
-        ld->ld_tgt_count = NTOH__u32(ld->ld_tgt_count); 
-        ld->ld_default_stripe_count = HTON__u32(ld->ld_default_stripe_count); 
-        ld->ld_default_stripe_size = HTON__u32(ld->ld_default_stripe_size); 
-        ld->ld_pattern = HTON__u32(ld->ld_pattern); 
+        ld->ld_tgt_count = NTOH__u32(ld->ld_tgt_count);
+        ld->ld_default_stripe_count = HTON__u32(ld->ld_default_stripe_count);
+        ld->ld_default_stripe_size = HTON__u32(ld->ld_default_stripe_size);
+        ld->ld_pattern = HTON__u32(ld->ld_pattern);
 }
 
 void lov_packmd(struct lov_mds_md *mdsmd, struct lov_stripe_md *md)
@@ -54,8 +54,8 @@ void lov_packmd(struct lov_mds_md *mdsmd, struct lov_stripe_md *md)
         mdsmd->lmd_stripe_count = md->lmd_stripe_count;
         mdsmd->lmd_stripe_size = md->lmd_stripe_size;
         mdsmd->lmd_stripe_pattern = md->lmd_stripe_pattern;
-        
-        for (i=0; i<md->lmd_stripe_count; i++) 
+
+        for (i = 0; i < md->lmd_stripe_count; i++)
                 mdsmd->lmd_objects[i].l_object_id = md->lmd_oinfo[i].loi_id;
 }
 
@@ -69,9 +69,9 @@ void lov_unpackmd(struct lov_stripe_md *md, struct lov_mds_md *mdsmd)
         md->lmd_stripe_count = mdsmd->lmd_stripe_count;
         md->lmd_stripe_size = mdsmd->lmd_stripe_size;
         md->lmd_stripe_pattern = mdsmd->lmd_stripe_pattern;
-        
-        for (i=0; i<md->lmd_stripe_count; i++) {
-                md->lmd_oinfo[i].loi_id = mdsmd->lmd_objects[i].l_object_id; 
+
+        for (i = 0; i < md->lmd_stripe_count; i++) {
+                md->lmd_oinfo[i].loi_id = mdsmd->lmd_objects[i].l_object_id;
                 md->lmd_oinfo[i].loi_size = 0;
         }
 }
index 0b344f2..a25f291 100644 (file)
@@ -254,6 +254,8 @@ static struct dentry *ll_lookup2(struct inode *dir, struct dentry *dentry,
                 if (request->rq_repmsg->bufcount < offset + 1)
                         LBUG();
                 md.md = lustre_msg_buf(request->rq_repmsg, offset + 1);
+                if (md.md->lmd_magic != LOV_MAGIC)
+                        md.md = NULL;
         } else
                 md.md = NULL;
 
index 755cc8f..172b3e4 100644 (file)
@@ -421,7 +421,6 @@ out:
         RETURN(rc);
 }
 
-
 static void ll_read_inode2(struct inode *inode, void *opaque)
 {
         struct ll_inode_md *md = opaque;
@@ -457,9 +456,8 @@ static void ll_read_inode2(struct inode *inode, void *opaque)
         if (body->valid & OBD_MD_FLSIZE)
                 inode->i_size = body->size;
 
-
         //if (body->valid & OBD_MD_FLEASIZE)
-        if (md && md->md && md->md->lmd_stripe_count) {
+        if (md && md->md) {
                 struct lov_mds_md *smd = md->md;
                 int size;
                 if (md->md->lmd_easize != ll_mds_easize(inode->i_sb)) {
index 8745fcc..1e4cba6 100644 (file)
@@ -300,7 +300,7 @@ static int lov_destroy(struct lustre_handle *conn, struct obdo *oa,
                 tmp.o_id = md->lmd_oinfo[i].loi_id;
                 rc = obd_destroy(&lov->tgts[i].conn, &tmp, NULL);
                 if (rc)
-                        CERROR("Error destroying object "LPD64"on %d\n",
+                        CERROR("Error destroying object "LPD64" on %d\n",
                                md->lmd_oinfo[i].loi_id, i);
         }
         RETURN(rc);
index 7c28b98..9d8a16a 100644 (file)
@@ -205,7 +205,7 @@ static int osc_create(struct lustre_handle *conn, struct obdo *oa,
         memcpy(oa, &body->oa, sizeof(*oa));
 
         (*ea)->lmd_object_id = oa->o_id;
-        (*ea)->lmd_stripe_count = 1;
+        (*ea)->lmd_stripe_count = 0;
         EXIT;
  out:
         ptlrpc_free_req(request);