From: Mikhail Pershin Date: Mon, 11 Jun 2018 06:44:01 +0000 (+0300) Subject: LU-11003 ldlm: don't add canceling lock back to LRU X-Git-Tag: 2.11.53~29 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=ad52f394bd8208c87398a3f593112c5340a7ceec;p=fs%2Flustre-release.git LU-11003 ldlm: don't add canceling lock back to LRU When lock is converted check it is not canceling before adding it back to LRU. Signed-off-by: Mikhail Pershin Change-Id: I278389f2a23b304d812f82ffb2dcee2ca70f5b21 Reviewed-on: https://review.whamcloud.com/32692 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: John L. Hammond Reviewed-by: Oleg Drokin --- diff --git a/lustre/ldlm/ldlm_request.c b/lustre/ldlm/ldlm_request.c index 36bc26e..6ce7226 100644 --- a/lustre/ldlm/ldlm_request.c +++ b/lustre/ldlm/ldlm_request.c @@ -1110,7 +1110,8 @@ static int lock_convert_interpret(const struct lu_env *env, * is not there yet. */ lock->l_policy_data.l_inodebits.cancel_bits = 0; - if (!lock->l_readers && !lock->l_writers) { + if (!lock->l_readers && !lock->l_writers && + !ldlm_is_canceling(lock)) { spin_lock(&ns->ns_lock); /* there is check for list_empty() inside */ ldlm_lock_remove_from_lru_nolock(lock);