From 46d6f7c7f7bfa3d62b273b4f9c57ad23535c569c Mon Sep 17 00:00:00 2001 From: johann Date: Wed, 30 Jul 2008 16:07:27 +0000 Subject: [PATCH] Branch HEAD b=16496 i=bzzz i=vitaly fix a race between class_handle_unhash() and class_handle2object() introduced in lustre 1.6.5 by bug 13622. check for h_in instead of h_cookie in class_handle2object(). --- lustre/ChangeLog | 6 ++++++ lustre/obdclass/lustre_handles.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index e95ef82..fa1b2ae 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -1225,6 +1225,12 @@ Details : looking up an inode via iopen with the wrong generation number can assertion failure in iopen since the inode's dentry list contains both a connected and disconnected dentry. +Severity : normal +Bugzilla : 16496 +Description: assertion failure in ldlm_handle2lock() +Details : fix a race between class_handle_unhash() and class_handle2object() + introduced in lustre 1.6.5 by bug 13622. + -------------------------------------------------------------------------------- 2007-08-10 Cluster File Systems, Inc. diff --git a/lustre/obdclass/lustre_handles.c b/lustre/obdclass/lustre_handles.c index 7128f24e..23d25dc 100644 --- a/lustre/obdclass/lustre_handles.c +++ b/lustre/obdclass/lustre_handles.c @@ -195,7 +195,7 @@ void *class_handle2object(__u64 cookie) continue; spin_lock(&h->h_lock); - if (likely(h->h_cookie != 0)) { + if (likely(h->h_in != 0)) { h->h_addref(h); retval = h; } -- 1.8.3.1