- volatile time_t rq_deadline; /* when request must finish. volatile
- so that servers' early reply updates to the deadline aren't
- kept in per-cpu cache */
- time_t rq_reply_deadline; /* when req reply unlink must finish. */
- time_t rq_bulk_deadline; /* when req bulk unlink must finish. */
- int rq_timeout; /* service time estimate (secs) */
-
- /* Multi-rpc bits */
- cfs_list_t rq_set_chain;
+ /** client outgoing req */
+ /**
+ * when request/reply sent (secs), or time when request should be sent
+ */
+ time_t rq_sent;
+ /** time for request really sent out */
+ time_t rq_real_sent;
+
+ /** when request must finish. volatile
+ * so that servers' early reply updates to the deadline aren't
+ * kept in per-cpu cache */
+ volatile time_t rq_deadline;
+ /** when req reply unlink must finish. */
+ time_t rq_reply_deadline;
+ /** when req bulk unlink must finish. */
+ time_t rq_bulk_deadline;
+ /**
+ * service time estimate (secs)
+ * If the requestsis not served by this time, it is marked as timed out.
+ */
+ int rq_timeout;
+
+ /** Multi-rpc bits */
+ /** Link item for request set lists */
+ cfs_list_t rq_set_chain;
+ /** Per-request waitq introduced by bug 21938 for recovery waiting */
+ cfs_waitq_t rq_set_waitq;
+ /** Link back to the request set */