Whamcloud - gitweb
- fix test 3b and fix related bug
authortappro <tappro>
Tue, 3 Oct 2006 15:43:59 +0000 (15:43 +0000)
committertappro <tappro>
Tue, 3 Oct 2006 15:43:59 +0000 (15:43 +0000)
lustre/mdt/mdt_reint.c
lustre/tests/replay-single-lmv.sh

index 0419653..dbe98f9 100644 (file)
@@ -102,8 +102,14 @@ static int mdt_md_mkobj(struct mdt_thread_info *info)
                 struct md_object *next = mdt_object_child(o);
 
                 ma->ma_need = MA_INODE;
-                rc = mo_object_create(info->mti_env, next, &info->mti_spec,
+                /* Cross-ref create can encounter already created obj in case
+                 * of recovery, just get attr in that case */
+                if (lu_object_exists(&o->mot_obj.mo_lu) == 1) {
+                        rc = mo_attr_get(info->mti_env, next, ma);
+                } else {
+                        rc = mo_object_create(info->mti_env, next, &info->mti_spec,
                                       ma);
+                }
                 if (rc == 0) {
                         /* return fid & attr to client. */
                         if (ma->ma_valid & MA_INODE)
index 107095e..fbc53c9 100755 (executable)
@@ -88,7 +88,6 @@ test_2a() {
 }
 run_test 2a "unlink cross-node file (fail mds with name)"
 
-
 test_3a() {
     replay_barrier mds2
     mkdir $DIR/dir3a1
@@ -100,14 +99,14 @@ test_3a() {
 run_test 3a "mkdir cross-node dir (fail mds with inode)"
 
 test_3b() {
-    mkdir $DIR/dir13
     replay_barrier mds1
-    $CHECKSTAT -t dir $DIR/dir13 || return 1
-    rmdir $DIR/dir13
+    mkdir $DIR/dir3b1
+    $LCTL mark "FAILOVER mds1"
     fail mds1
-    stat $DIR/dir13
+    stat $DIR
+    $CHECKSTAT -t dir $DIR/dir3b1 || return 1
 }
-run_test 3b "mkdir cross-node dir (fail mds with name)"
+run_test 3b "mkdir cross-node dir (fail mds with inode)"
 
 equals_msg test complete, cleaning up
 $CLEANUP