aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sunrpc
diff options
context:
space:
mode:
authorChuck Lever <cel@netapp.com>2005-08-25 19:25:50 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2005-09-23 12:38:36 -0400
commitfe3aca290f17ae4978bd73d02aa4029f1c9c024c (patch)
tree4fbaa255e9e7a85f41eacb7cf1214dc44a90bcea /include/linux/sunrpc
parent43118c29dea2b23798bd42a147015cceee7fa885 (diff)
[PATCH] RPC: add API to set transport-specific timeouts
Prepare the way to remove the "xprt->nocong" variable by adding a callout to the RPC client transport switch API to handle setting RPC retransmit timeouts. Add a pair of generic helper functions that provide the ability to set a simple fixed timeout, or to set a timeout based on the state of a round- trip estimator. 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/linux/sunrpc')
-rw-r--r--include/linux/sunrpc/xprt.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h
index c9477f022efb..ac08e99a81cb 100644
--- a/include/linux/sunrpc/xprt.h
+++ b/include/linux/sunrpc/xprt.h
@@ -134,6 +134,7 @@ struct rpc_xprt_ops {
134 void (*set_buffer_size)(struct rpc_xprt *xprt); 134 void (*set_buffer_size)(struct rpc_xprt *xprt);
135 void (*connect)(struct rpc_task *task); 135 void (*connect)(struct rpc_task *task);
136 int (*send_request)(struct rpc_task *task); 136 int (*send_request)(struct rpc_task *task);
137 void (*set_retrans_timeout)(struct rpc_task *task);
137 void (*close)(struct rpc_xprt *xprt); 138 void (*close)(struct rpc_xprt *xprt);
138 void (*destroy)(struct rpc_xprt *xprt); 139 void (*destroy)(struct rpc_xprt *xprt);
139}; 140};
@@ -245,6 +246,8 @@ static inline u32 *xprt_skip_transport_header(struct rpc_xprt *xprt, u32 *p)
245/* 246/*
246 * Transport switch helper functions 247 * Transport switch helper functions
247 */ 248 */
249void xprt_set_retrans_timeout_def(struct rpc_task *task);
250void xprt_set_retrans_timeout_rtt(struct rpc_task *task);
248void xprt_wake_pending_tasks(struct rpc_xprt *xprt, int status); 251void xprt_wake_pending_tasks(struct rpc_xprt *xprt, int status);
249void xprt_wait_for_buffer_space(struct rpc_task *task); 252void xprt_wait_for_buffer_space(struct rpc_task *task);
250void xprt_write_space(struct rpc_xprt *xprt); 253void xprt_write_space(struct rpc_xprt *xprt);