Whamcloud - gitweb
LU-13005 lnet: drop refcounting from event queues.
[fs/lustre-release.git] / lnet / lnet / lib-eq.c
index 261eba5..4bcf3b4 100644 (file)
@@ -66,19 +66,7 @@ LNetEQAlloc(lnet_eq_handler_t callback)
 
        eq->eq_callback = callback;
 
-       eq->eq_refs = cfs_percpt_alloc(lnet_cpt_table(),
-                                      sizeof(*eq->eq_refs[0]));
-       if (eq->eq_refs == NULL)
-               goto failed;
-
        return eq;
-
-failed:
-       if (eq->eq_refs != NULL)
-               cfs_percpt_free(eq->eq_refs);
-
-       lnet_eq_free(eq);
-       return ERR_PTR(-ENOMEM);
 }
 EXPORT_SYMBOL(LNetEQAlloc);
 
@@ -88,45 +76,11 @@ EXPORT_SYMBOL(LNetEQAlloc);
  *
  * \param eq The event queue to be released.
  *
- * \retval 0 If the EQ is not in use and freed.
- * \retval -EBUSY  If the EQ is still in use by some MDs.
  */
-int
+void
 LNetEQFree(struct lnet_eq *eq)
 {
-       int             **refs = NULL;
-       int             *ref;
-       int             rc = 0;
-       int             i;
-
-       lnet_res_lock(LNET_LOCK_EX);
-       /* NB: hold lnet_eq_wait_lock for EQ link/unlink, so we can do
-        * both EQ lookup and poll event with only lnet_eq_wait_lock */
-       lnet_eq_wait_lock();
-
-       cfs_percpt_for_each(ref, i, eq->eq_refs) {
-               LASSERT(*ref >= 0);
-               if (*ref == 0)
-                       continue;
-
-               CDEBUG(D_NET, "Event equeue (%d: %d) busy on destroy.\n",
-                      i, *ref);
-               rc = -EBUSY;
-               goto out;
-       }
-
-       /* stash for free after lock dropped */
-       refs    = eq->eq_refs;
-
        lnet_eq_free(eq);
- out:
-       lnet_eq_wait_unlock();
-       lnet_res_unlock(LNET_LOCK_EX);
-
-       if (refs != NULL)
-               cfs_percpt_free(refs);
-
-       return rc;
 }
 EXPORT_SYMBOL(LNetEQFree);