From ea5c43c7d4d582b15783f61f113a4f6e1a057d0f Mon Sep 17 00:00:00 2001 From: Sergey Cheremencev Date: Wed, 20 Jan 2016 23:57:01 +0300 Subject: [PATCH] LU-12412 recovery: wake all waiters of trd_finishing There is a small window where lctl --device abort_recovery and umount->...->stop_recovery_thread may be called before recovery finish. In such case all threads need to be waked up, so change complete to complete_all. Cray-bug-id: LUS-2000 Change-Id: I01ef163e72c7691a2c2d5449adf55b55ec734c4d Signed-off-by: Sergey Cheremencev Reviewed-by: Andriy Skulysh Reviewed-by: Vladimir Saveliev Reviewed-on: https://review.whamcloud.com/35141 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/ldlm/ldlm_lib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/ldlm/ldlm_lib.c b/lustre/ldlm/ldlm_lib.c index 09f39af..e52da6b 100644 --- a/lustre/ldlm/ldlm_lib.c +++ b/lustre/ldlm/ldlm_lib.c @@ -2567,7 +2567,7 @@ static int target_recovery_thread(void *arg) lu_context_fini(&env->le_ctx); trd->trd_processing_task = 0; - complete(&trd->trd_finishing); + complete_all(&trd->trd_finishing); tgt_io_thread_done(thread); out_env_remove: -- 1.8.3.1