- spinlock_t srv_at_lock;
- struct list_head srv_at_list; /* reqs waiting for replies */
- cfs_timer_t srv_at_timer; /* early reply timer */
-
- int srv_n_queued_reqs; /* # reqs in either of the queues below */
- struct list_head srv_req_in_queue; /* incoming reqs */
- struct list_head srv_request_queue; /* reqs waiting for service */
-
- struct list_head srv_request_history; /* request history */
- __u64 srv_request_seq; /* next request sequence # */
- __u64 srv_request_max_cull_seq; /* highest seq culled from history */
- svcreq_printfn_t srv_request_history_print_fn; /* service-specific print fn */
-
- struct list_head srv_idle_rqbds; /* request buffers to be reposted */
- struct list_head srv_active_rqbds; /* req buffers receiving */
- struct list_head srv_history_rqbds; /* request buffer history */
- int srv_nrqbd_receiving; /* # posted request buffers */
- int srv_n_history_rqbds; /* # request buffers in history */
- int srv_max_history_rqbds;/* max # request buffers in history */
-
- atomic_t srv_outstanding_replies;
- struct list_head srv_active_replies; /* all the active replies */
- struct list_head srv_reply_queue; /* replies waiting for service */
-
- cfs_waitq_t srv_waitq; /* all threads sleep on this. This
- * wait-queue is signalled when new
- * incoming request arrives and when
- * difficult reply has to be handled. */
-
- struct list_head srv_threads; /* service thread list */
- svc_handler_t srv_handler;
+ cfs_spinlock_t srv_at_lock;
+ struct ptlrpc_at_array srv_at_array; /* reqs waiting for replies */
+ cfs_timer_t srv_at_timer; /* early reply timer */
+
+ int srv_n_queued_reqs; /* # reqs in either of the queues below */
+ int srv_hpreq_count; /* # hp requests handled */
+ int srv_hpreq_ratio; /* # hp per lp reqs to handle */
+ cfs_list_t srv_req_in_queue; /* incoming reqs */
+ cfs_list_t srv_request_queue; /* reqs waiting for service */
+ cfs_list_t srv_request_hpq; /* high priority queue */
+
+ cfs_list_t srv_request_history; /* request history */
+ __u64 srv_request_seq; /* next request sequence # */
+ __u64 srv_request_max_cull_seq; /* highest seq culled from history */
+ svcreq_printfn_t srv_request_history_print_fn; /* service-specific print fn */
+
+ cfs_list_t srv_idle_rqbds; /* request buffers to be reposted */
+ cfs_list_t srv_active_rqbds; /* req buffers receiving */
+ cfs_list_t srv_history_rqbds; /* request buffer history */
+ int srv_nrqbd_receiving; /* # posted request buffers */
+ int srv_n_history_rqbds; /* # request buffers in history */
+ int srv_max_history_rqbds;/* max # request buffers in history */
+
+ cfs_atomic_t srv_outstanding_replies;
+ cfs_list_t srv_active_replies; /* all the active replies */
+#ifndef __KERNEL__
+ cfs_list_t srv_reply_queue; /* replies waiting for service */
+#endif
+ cfs_waitq_t srv_waitq; /* all threads sleep on this. This
+ * wait-queue is signalled when new
+ * incoming request arrives and when
+ * difficult reply has to be handled. */
+
+ cfs_list_t srv_threads; /* service thread list */
+ svc_handler_t srv_handler;
+ svc_hpreq_handler_t srv_hpreq_handler; /* hp request handler */