Whamcloud - gitweb
b=17167 libcfs: ensure all libcfs exported symbols to have cfs_ prefix
[fs/lustre-release.git] / lnet / lnet / lib-eq.c
index 1a91963..61af852 100644 (file)
@@ -16,8 +16,8 @@
  * in the LICENSE file that accompanied this code).
  *
  * You should have received a copy of the GNU General Public License
- * version 2 along with this program; If not, see [sun.com URL with a
- * copy of GPLv2].
+ * version 2 along with this program; If not, see
+ * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
  *
  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  * CA 95054 USA or visit www.sun.com if you need additional information or
@@ -91,7 +91,7 @@ LNetEQAlloc(unsigned int count, lnet_eq_handler_t callback,
         LNET_LOCK();
 
         lnet_initialise_handle (&eq->eq_lh, LNET_COOKIE_TYPE_EQ);
-        list_add (&eq->eq_list, &the_lnet.ln_active_eqs);
+        cfs_list_add (&eq->eq_list, &the_lnet.ln_active_eqs);
 
         LNET_UNLOCK();
 
@@ -129,7 +129,7 @@ LNetEQFree(lnet_handle_eq_t eqh)
         size    = eq->eq_size;
 
         lnet_invalidate_handle (&eq->eq_lh);
-        list_del (&eq->eq_list);
+        cfs_list_del (&eq->eq_list);
         lnet_eq_free (eq);
 
         LNET_UNLOCK();
@@ -219,6 +219,16 @@ LNetEQPoll (lnet_handle_eq_t *eventqs, int neq, int timeout_ms,
         LNET_LOCK();
 
         for (;;) {
+#ifndef __KERNEL__
+                LNET_UNLOCK();
+
+                /* Recursion breaker */
+                if (the_lnet.ln_rc_state == LNET_RC_STATE_RUNNING &&
+                    !LNetHandleIsEqual(eventqs[0], the_lnet.ln_rc_eqh))
+                        lnet_router_checker();
+
+                LNET_LOCK();
+#endif
                 for (i = 0; i < neq; i++) {
                         lnet_eq_t *eq = lnet_handle2eq(&eventqs[i]);
 
@@ -242,7 +252,7 @@ LNetEQPoll (lnet_handle_eq_t *eventqs, int neq, int timeout_ms,
                 }
 
                 cfs_waitlink_init(&wl);
-                set_current_state(TASK_INTERRUPTIBLE);
+                cfs_set_current_state(CFS_TASK_INTERRUPTIBLE);
                 cfs_waitq_add(&the_lnet.ln_waitq, &wl);
 
                 LNET_UNLOCK();
@@ -256,8 +266,8 @@ LNetEQPoll (lnet_handle_eq_t *eventqs, int neq, int timeout_ms,
                         cfs_waitq_timedwait(&wl, CFS_TASK_INTERRUPTIBLE,
                                             cfs_time_seconds(timeout_ms)/1000);
                         cfs_duration_usec(cfs_time_sub(cfs_time_current(), now),
-                                          &tv);
-                        timeout_ms -= tv.tv_sec * 1000 + tv.tv_usec / 1000;
+                                            &tv);
+                        timeout_ms -= (int)(tv.tv_sec * 1000 + tv.tv_usec / 1000);
                         if (timeout_ms < 0)
                                 timeout_ms = 0;
                 }