Whamcloud - gitweb
LU-12412 recovery: wake all waiters of trd_finishing 41/35141/2
authorSergey Cheremencev <sergey.cheremencev@seagate.com>
Wed, 20 Jan 2016 20:57:01 +0000 (23:57 +0300)
committerOleg Drokin <green@whamcloud.com>
Sun, 16 Jun 2019 03:30:32 +0000 (03:30 +0000)
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 <c17829@cray.com>
Reviewed-by: Andriy Skulysh <c17819@cray.com>
Reviewed-by: Vladimir Saveliev <c17830@cray.com>
Reviewed-on: https://review.whamcloud.com/35141
Tested-by: Jenkins
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/ldlm/ldlm_lib.c

index 09f39af..e52da6b 100644 (file)
@@ -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: