From fe5c801657f9ddb5e148bb6076e476df6ba31bba Mon Sep 17 00:00:00 2001 From: Hongchao Zhang Date: Wed, 10 Jul 2019 04:22:15 -0400 Subject: [PATCH] LU-11762 ldlm: ensure the recovery timer is armed During recovery, when the recovery timer is expired, the VBR phase is initiated only the current recovery timeout is less than the hard recovery timeout, or it will be stuck in the "wait_event_timeout()" because there is no timer and it can't be waked up. Change-Id: I32467afa45393e37f255e2b14f160c9da710461b Signed-off-by: Hongchao Zhang Reviewed-on: https://review.whamcloud.com/35627 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Alex Zhuravlev Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- lustre/ldlm/ldlm_lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lustre/ldlm/ldlm_lib.c b/lustre/ldlm/ldlm_lib.c index 2688d07..6c311e2 100644 --- a/lustre/ldlm/ldlm_lib.c +++ b/lustre/ldlm/ldlm_lib.c @@ -2173,7 +2173,8 @@ repeat: /** evict exports which didn't finish recovery yet */ class_disconnect_stale_exports(obd, exp_finished); return 1; - } else if (obd->obd_recovery_expired) { + } else if (obd->obd_recovery_expired && + obd->obd_recovery_timeout < obd->obd_recovery_time_hard) { obd->obd_recovery_expired = 0; /** If some clients died being recovered, evict them */ -- 1.8.3.1