From 8f250c7672171a4d4d6adf3774cca5f1c5825a14 Mon Sep 17 00:00:00 2001 From: tianzy Date: Thu, 15 Oct 2009 08:25:01 +0000 Subject: [PATCH] Branch b1_8 clean the code relative to lqs_refcount b=18782 i=johann i=panda --- lustre/include/lustre_quota.h | 18 +++++------------- lustre/quota/quota_context.c | 14 ++------------ 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/lustre/include/lustre_quota.h b/lustre/include/lustre_quota.h index cfec87c..60502b8 100644 --- a/lustre/include/lustre_quota.h +++ b/lustre/include/lustre_quota.h @@ -325,19 +325,11 @@ static inline void lqs_putref(struct lustre_qunit_size *lqs) { LASSERT(atomic_read(&lqs->lqs_refcount) > 0); - /* killing last ref, let's let hash table kill it */ - if (atomic_read(&lqs->lqs_refcount) == 1) { - lustre_hash_del(lqs->lqs_ctxt->lqc_lqs_hash, - &lqs->lqs_key, &lqs->lqs_hash); - OBD_FREE_PTR(lqs); - } else { - if (atomic_dec_return(&lqs->lqs_refcount) == 1) - if (atomic_dec_and_test(&lqs->lqs_ctxt->lqc_lqs)) - cfs_waitq_signal(&lqs->lqs_ctxt->lqc_lqs_waitq); - CDEBUG(D_QUOTA, "lqs=%p refcount %d\n", - lqs, atomic_read(&lqs->lqs_refcount)); - - } + if (atomic_dec_return(&lqs->lqs_refcount) == 1) + if (atomic_dec_and_test(&lqs->lqs_ctxt->lqc_lqs)) + cfs_waitq_signal(&lqs->lqs_ctxt->lqc_lqs_waitq); + CDEBUG(D_QUOTA, "lqs=%p refcount %d\n", + lqs, atomic_read(&lqs->lqs_refcount)); } static inline void lqs_initref(struct lustre_qunit_size *lqs) diff --git a/lustre/quota/quota_context.c b/lustre/quota/quota_context.c index d08fa45..e011bf2 100644 --- a/lustre/quota/quota_context.c +++ b/lustre/quota/quota_context.c @@ -1471,10 +1471,7 @@ lqs_get(struct hlist_node *hnode) hlist_entry(hnode, struct lustre_qunit_size, lqs_hash); ENTRY; - if (atomic_inc_return(&q->lqs_refcount) == 2) /* quota_search_lqs */ - atomic_inc(&q->lqs_ctxt->lqc_lqs); - CDEBUG(D_QUOTA, "lqs=%p refcount %d\n", - q, atomic_read(&q->lqs_refcount)); + lqs_getref(q); RETURN(q); } @@ -1486,14 +1483,7 @@ lqs_put(struct hlist_node *hnode) hlist_entry(hnode, struct lustre_qunit_size, lqs_hash); ENTRY; - LASSERT(atomic_read(&q->lqs_refcount) > 0); - - if (atomic_dec_return(&q->lqs_refcount) == 1) - if (atomic_dec_and_test(&q->lqs_ctxt->lqc_lqs)) - cfs_waitq_signal(&q->lqs_ctxt->lqc_lqs_waitq); - - CDEBUG(D_QUOTA, "lqs=%p refcount %d\n", - q, atomic_read(&q->lqs_refcount)); + lqs_putref(q); RETURN(q); } -- 1.8.3.1