In ldlm_prepare_lru_list() fix an (x != a || x != b) type error and
correct a use after free.
Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: I4e34e531260295805c4461e7d8d98675400f1148
Reviewed-on: https://review.whamcloud.com/32660
Tested-by: Jenkins
Reviewed-by: Mike Pershin <mpershin@whamcloud.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
/* No locks which got blocking requests. */
LASSERT(!ldlm_is_bl_ast(lock));
- if (!ldlm_is_canceling(lock) ||
+ if (!ldlm_is_canceling(lock) &&
!ldlm_is_converting(lock))
break;
if (result == LDLM_POLICY_SKIP_LOCK) {
lu_ref_del(&lock->l_reference, __func__, current);
- LDLM_LOCK_RELEASE(lock);
if (no_wait) {
spin_lock(&ns->ns_lock);
if (!list_empty(&lock->l_lru) &&
ns->ns_last_pos = &lock->l_lru;
spin_unlock(&ns->ns_lock);
}
+
+ LDLM_LOCK_RELEASE(lock);
continue;
}