From 04e097645183b3d7b4127dc9261cf29244544391 Mon Sep 17 00:00:00 2001 From: tappro Date: Tue, 5 Aug 2008 13:59:44 +0000 Subject: [PATCH] - fix endless recovery in some cases b:16509 i:rread,alex --- lustre/ost/ost_handler.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lustre/ost/ost_handler.c b/lustre/ost/ost_handler.c index 1da8006..4429a45 100644 --- a/lustre/ost/ost_handler.c +++ b/lustre/ost/ost_handler.c @@ -1527,7 +1527,7 @@ static int ost_handle(struct ptlrpc_request *req) LASSERT(current->journal_info == NULL); /* XXX identical to MDS */ if (lustre_msg_get_opc(req->rq_reqmsg) != OST_CONNECT) { - int abort_recovery, recovering; + int recovering; if (req->rq_export == NULL) { CDEBUG(D_HA,"operation %d on unconnected OST from %s\n", @@ -1541,12 +1541,10 @@ static int ost_handle(struct ptlrpc_request *req) /* Check for aborted recovery. */ spin_lock_bh(&obd->obd_processing_task_lock); - abort_recovery = obd->obd_abort_recovery; recovering = obd->obd_recovering; spin_unlock_bh(&obd->obd_processing_task_lock); - if (abort_recovery) { - target_abort_recovery(obd); - } else if (recovering) { + if (recovering && + target_recovery_check_and_stop(obd) == 0) { rc = ost_filter_recovery_request(req, obd, &should_process); if (rc || !should_process) -- 1.8.3.1