diff options
author | Chuck Lever <cel@netapp.com> | 2005-08-25 19:25:50 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-09-23 12:38:36 -0400 |
commit | fe3aca290f17ae4978bd73d02aa4029f1c9c024c (patch) | |
tree | 4fbaa255e9e7a85f41eacb7cf1214dc44a90bcea /include/linux/sunrpc/xprt.h | |
parent | 43118c29dea2b23798bd42a147015cceee7fa885 (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/xprt.h')
-rw-r--r-- | include/linux/sunrpc/xprt.h | 3 |
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 | */ |
249 | void xprt_set_retrans_timeout_def(struct rpc_task *task); | ||
250 | void xprt_set_retrans_timeout_rtt(struct rpc_task *task); | ||
248 | void xprt_wake_pending_tasks(struct rpc_xprt *xprt, int status); | 251 | void xprt_wake_pending_tasks(struct rpc_xprt *xprt, int status); |
249 | void xprt_wait_for_buffer_space(struct rpc_task *task); | 252 | void xprt_wait_for_buffer_space(struct rpc_task *task); |
250 | void xprt_write_space(struct rpc_xprt *xprt); | 253 | void xprt_write_space(struct rpc_xprt *xprt); |