Whamcloud - gitweb
Branch b1_8
authortianzy <tianzy>
Thu, 15 Oct 2009 08:25:01 +0000 (08:25 +0000)
committertianzy <tianzy>
Thu, 15 Oct 2009 08:25:01 +0000 (08:25 +0000)
clean the code relative to lqs_refcount
b=18782
i=johann
i=panda

lustre/include/lustre_quota.h
lustre/quota/quota_context.c

index cfec87c..60502b8 100644 (file)
@@ -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)
index d08fa45..e011bf2 100644 (file)
@@ -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);
 }