From 90aab75a0fce5190f0637011c162cbd652499b39 Mon Sep 17 00:00:00 2001 From: vitaly Date: Mon, 16 Mar 2009 12:45:28 +0000 Subject: [PATCH] Branch HEAD b=3633 i=tappro i=rread handle transno == 0 on replay properly --- lustre/ptlrpc/client.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lustre/ptlrpc/client.c b/lustre/ptlrpc/client.c index cf6aed5..d2a5cf9 100644 --- a/lustre/ptlrpc/client.c +++ b/lustre/ptlrpc/client.c @@ -1022,8 +1022,10 @@ static int after_reply(struct ptlrpc_request *req) /* * Store transno in reqmsg for replay. */ - req->rq_transno = lustre_msg_get_transno(req->rq_repmsg); - lustre_msg_set_transno(req->rq_reqmsg, req->rq_transno); + if (!(lustre_msg_get_flags(req->rq_reqmsg) & MSG_REPLAY)) { + req->rq_transno = lustre_msg_get_transno(req->rq_repmsg); + lustre_msg_set_transno(req->rq_reqmsg, req->rq_transno); + } if (req->rq_import->imp_replayable) { spin_lock(&imp->imp_lock); @@ -2327,8 +2329,12 @@ static int ptlrpc_replay_interpret(const struct lu_env *env, GOTO(out, rc = lustre_msg_get_status(req->rq_repmsg)); /* The transno had better not change over replay. */ - LASSERT(lustre_msg_get_transno(req->rq_reqmsg) == - lustre_msg_get_transno(req->rq_repmsg)); + LASSERTF(lustre_msg_get_transno(req->rq_reqmsg) == + lustre_msg_get_transno(req->rq_repmsg) || + lustre_msg_get_transno(req->rq_repmsg) == 0, + LPX64"/"LPX64"\n", + lustre_msg_get_transno(req->rq_reqmsg), + lustre_msg_get_transno(req->rq_repmsg)); DEBUG_REQ(D_HA, req, "got rep"); -- 1.8.3.1