X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fobdclass%2Flustre_handles.c;h=dfdfec41a3369f955110e23f27a27c5b2192446e;hp=0a08a3ddf08a6a755c789b834835e0eb464294d9;hb=a25adb47c7b7eeb68a922e2647d74eeff3401c6a;hpb=7e4673aeb348677a770bf686a13780c873becf7f diff --git a/lustre/obdclass/lustre_handles.c b/lustre/obdclass/lustre_handles.c index 0a08a3d..dfdfec4 100644 --- a/lustre/obdclass/lustre_handles.c +++ b/lustre/obdclass/lustre_handles.c @@ -93,6 +93,7 @@ void class_handle_hash(struct portals_handle *h, portals_handle_addref_cb cb) bucket = &handle_hash[h->h_cookie & HANDLE_HASH_MASK]; spin_lock(&bucket->lock); list_add_rcu(&h->h_link, &bucket->head); + h->h_in = 1; spin_unlock(&bucket->lock); CDEBUG(D_INFO, "added object %p with handle "LPX64" to hash\n", @@ -112,11 +113,11 @@ static void class_handle_unhash_nolock(struct portals_handle *h) h, h->h_cookie); spin_lock(&h->h_lock); - if (h->h_cookie == 0) { + if (h->h_in == 0) { spin_unlock(&h->h_lock); return; } - h->h_cookie = 0; + h->h_in = 0; spin_unlock(&h->h_lock); list_del_rcu(&h->h_link); } @@ -143,6 +144,7 @@ void class_handle_hash_back(struct portals_handle *h) atomic_inc(&handle_count); spin_lock(&bucket->lock); list_add_rcu(&h->h_link, &bucket->head); + h->h_in = 1; spin_unlock(&bucket->lock); EXIT;