From: johann Date: Wed, 30 Jul 2008 16:02:55 +0000 (+0000) Subject: Branch b1_6 X-Git-Tag: GIT_EPOCH_B_RELEASE_1_6_7~2^3~418 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=0d6b18a2bda75af0fee3f679291659123bb9be21;p=fs%2Flustre-release.git Branch b1_6 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. use h_in instead of h_cookie in class_handle2object(). --- diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 2b6c1f4..35b1389 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -358,6 +358,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. + ------------------------------------------------------------------------------- diff --git a/lustre/obdclass/lustre_handles.c b/lustre/obdclass/lustre_handles.c index ee0de19..b758fba 100644 --- a/lustre/obdclass/lustre_handles.c +++ b/lustre/obdclass/lustre_handles.c @@ -179,7 +179,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; }