- /* waitq for router checker. As long as there are no routes in
- * the list, the router checker will sleep on this queue. when
- * routes are added the thread will wake up */
- wait_queue_head_t ln_rc_waitq;
-} lnet_t;
+ /*
+ * completion for the monitor thread. The monitor thread takes care of
+ * checking routes, timedout messages and resending messages.
+ */
+ struct completion ln_mt_wait_complete;
+
+ /* per-cpt resend queues */
+ struct list_head **ln_mt_resendqs;
+ /* local NIs to recover */
+ struct list_head ln_mt_localNIRecovq;
+ /* local NIs to recover */
+ struct list_head ln_mt_peerNIRecovq;
+ /*
+ * An array of queues for GET/PUT waiting for REPLY/ACK respectively.
+ * There are CPT number of queues. Since response trackers will be
+ * added on the fast path we can't afford to grab the exclusive
+ * net lock to protect these queues. The CPT will be calculated
+ * based on the mdh cookie.
+ */
+ struct list_head **ln_mt_rstq;
+ /*
+ * A response tracker becomes a zombie when the associated MD is queued
+ * for unlink before the response tracker is detached from the MD. An
+ * entry on a zombie list can be freed when either the remaining
+ * operations on the MD complete or when LNet has shut down.
+ */
+ struct list_head **ln_mt_zombie_rstqs;
+ /* recovery handler */
+ lnet_handler_t ln_mt_handler;
+
+ /*
+ * Completed when the discovery and monitor threads can enter their
+ * work loops
+ */
+ struct completion ln_started;
+ /* UDSP list */
+ struct list_head ln_udsp_list;
+};