aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChuck Lever <cel@netapp.com>2005-08-25 19:25:52 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2005-09-23 12:38:41 -0400
commit46c0ee8bc4ad3743de05e8b8b20201df44dcb6d3 (patch)
tree6b2993ff1cefb69cc3cc40c3605d088ea2af3c98 /include
parent49e9a89086b3cae784a4868ca852863e4f4ea3fe (diff)
[PATCH] RPC: separate xprt_timer implementations
Allow transports to hook the retransmit timer interrupt. Some transports calculate their congestion window here so that a retransmit timeout has immediate effect on the congestion window. Test-plan: Use WAN simulation to cause sporadic bursty packet loss. Look for significant regression in performance or client stability. Signed-off-by: Chuck Lever <cel@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/sunrpc/xprt.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h
index 86833b725bb5..443c3f984cf9 100644
--- a/include/linux/sunrpc/xprt.h
+++ b/include/linux/sunrpc/xprt.h
@@ -137,6 +137,7 @@ struct rpc_xprt_ops {
137 void (*connect)(struct rpc_task *task); 137 void (*connect)(struct rpc_task *task);
138 int (*send_request)(struct rpc_task *task); 138 int (*send_request)(struct rpc_task *task);
139 void (*set_retrans_timeout)(struct rpc_task *task); 139 void (*set_retrans_timeout)(struct rpc_task *task);
140 void (*timer)(struct rpc_task *task);
140 void (*close)(struct rpc_xprt *xprt); 141 void (*close)(struct rpc_xprt *xprt);
141 void (*destroy)(struct rpc_xprt *xprt); 142 void (*destroy)(struct rpc_xprt *xprt);
142}; 143};
@@ -257,6 +258,7 @@ void xprt_set_retrans_timeout_rtt(struct rpc_task *task);
257void xprt_wake_pending_tasks(struct rpc_xprt *xprt, int status); 258void xprt_wake_pending_tasks(struct rpc_xprt *xprt, int status);
258void xprt_wait_for_buffer_space(struct rpc_task *task); 259void xprt_wait_for_buffer_space(struct rpc_task *task);
259void xprt_write_space(struct rpc_xprt *xprt); 260void xprt_write_space(struct rpc_xprt *xprt);
261void xprt_adjust_cwnd(struct rpc_task *task, int result);
260struct rpc_rqst * xprt_lookup_rqst(struct rpc_xprt *xprt, u32 xid); 262struct rpc_rqst * xprt_lookup_rqst(struct rpc_xprt *xprt, u32 xid);
261void xprt_complete_rqst(struct rpc_xprt *xprt, struct rpc_rqst *req, int copied); 263void xprt_complete_rqst(struct rpc_xprt *xprt, struct rpc_rqst *req, int copied);
262void xprt_disconnect(struct rpc_xprt *xprt); 264void xprt_disconnect(struct rpc_xprt *xprt);