From 98bee57afb2e86096bad43a1af3e24dc397f4322 Mon Sep 17 00:00:00 2001 From: Johann Lombardi Date: Thu, 28 Aug 2014 14:42:56 +0200 Subject: [PATCH] LU-5522 ldlm: remove expired lock from per-export list Expired locks processed by the ldlm_elt thread might still be referenced in the per-export BL AST list. Most of the time, it has not impact except when a request for this export is still being processed for this export and might scan the per-export BL AST list. Signed-off-by: Johann Lombardi Change-Id: I23745770983507ffd986de9ba056a03b11199a78 Reviewed-on: http://review.whamcloud.com/11634 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Niu Yawei Reviewed-by: Mike Pershin Reviewed-by: Oleg Drokin --- lustre/ldlm/ldlm_lockd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lustre/ldlm/ldlm_lockd.c b/lustre/ldlm/ldlm_lockd.c index bfb4af1..62baaf5 100644 --- a/lustre/ldlm/ldlm_lockd.c +++ b/lustre/ldlm/ldlm_lockd.c @@ -237,6 +237,10 @@ static int expired_lock_main(void *arg) export = class_export_lock_get(lock->l_export, lock); spin_unlock_bh(&waiting_locks_spinlock); + spin_lock_bh(&export->exp_bl_list_lock); + list_del_init(&lock->l_exp_list); + spin_unlock_bh(&export->exp_bl_list_lock); + do_dump++; class_fail_export(export); class_export_lock_put(export, lock); -- 1.8.3.1