From 51ebc50ce605eded9f7d72793b24b50e84781885 Mon Sep 17 00:00:00 2001 From: tappro Date: Tue, 3 Oct 2006 15:43:59 +0000 Subject: [PATCH] - fix test 3b and fix related bug --- lustre/mdt/mdt_reint.c | 8 +++++++- lustre/tests/replay-single-lmv.sh | 11 +++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lustre/mdt/mdt_reint.c b/lustre/mdt/mdt_reint.c index 0419653..dbe98f9 100644 --- a/lustre/mdt/mdt_reint.c +++ b/lustre/mdt/mdt_reint.c @@ -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) diff --git a/lustre/tests/replay-single-lmv.sh b/lustre/tests/replay-single-lmv.sh index 107095e..fbc53c9 100755 --- a/lustre/tests/replay-single-lmv.sh +++ b/lustre/tests/replay-single-lmv.sh @@ -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 -- 1.8.3.1