summaryrefslogtreecommitdiffstats
path: root/include/linux/sunrpc
diff options
context:
space:
mode:
authorChuck Lever <cel@netapp.com>2005-08-25 16:25:54 -0700
committerTrond Myklebust <Trond.Myklebust@netapp.com>2005-09-23 12:38:50 -0400
commit529b33c6db0120126b1381faa51406dc463acdc9 (patch)
tree4856a23687aa891f6a5d1c45db80190b90b0fc68 /include/linux/sunrpc
parent555ee3af161b037865793bd4bebc06b58daafde6 (diff)
downloadkernel-crypto-529b33c6db0120126b1381faa51406dc463acdc9.tar.gz
kernel-crypto-529b33c6db0120126b1381faa51406dc463acdc9.tar.xz
kernel-crypto-529b33c6db0120126b1381faa51406dc463acdc9.zip
[PATCH] RPC: allow RPC client's port range to be adjustable
Select an RPC client source port between 650 and 1023 instead of between 1 and 800. The old range conflicts with a number of network services. Provide sysctls to allow admins to select a different port range. Note that this doesn't affect user-level RPC library behavior, which still uses 1 to 800. Based on a suggestion by Olaf Kirch <okir@suse.de>. Test-plan: Repeated mount and unmount. Destructive testing. Idle timeouts. 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/debug.h2
-rw-r--r--include/linux/sunrpc/xprt.h17
2 files changed, 16 insertions, 3 deletions
diff --git a/include/linux/sunrpc/debug.h b/include/linux/sunrpc/debug.h
index 42d29974795..1a42d902bc1 100644
--- a/include/linux/sunrpc/debug.h
+++ b/include/linux/sunrpc/debug.h
@@ -95,6 +95,8 @@ enum {
CTL_NLMDEBUG,
CTL_SLOTTABLE_UDP,
CTL_SLOTTABLE_TCP,
+ CTL_MIN_RESVPORT,
+ CTL_MAX_RESVPORT,
};
#endif /* _LINUX_SUNRPC_DEBUG_H_ */
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h
index dcf0326bda0..9d9266cf8a3 100644
--- a/include/linux/sunrpc/xprt.h
+++ b/include/linux/sunrpc/xprt.h
@@ -52,6 +52,17 @@ extern unsigned int xprt_tcp_slot_table_entries;
#define RPC_REPHDRSIZE 4
/*
+ * Parameters for choosing a free port
+ */
+extern unsigned int xprt_min_resvport;
+extern unsigned int xprt_max_resvport;
+
+#define RPC_MIN_RESVPORT (1U)
+#define RPC_MAX_RESVPORT (65535U)
+#define RPC_DEF_MIN_RESVPORT (650U)
+#define RPC_DEF_MAX_RESVPORT (1023U)
+
+/*
* This describes a timeout strategy
*/
struct rpc_timeout {
@@ -62,6 +73,9 @@ struct rpc_timeout {
unsigned char to_exponential;
};
+struct rpc_task;
+struct rpc_xprt;
+
/*
* This describes a complete RPC request
*/
@@ -107,9 +121,6 @@ struct rpc_rqst {
#define rq_svec rq_snd_buf.head
#define rq_slen rq_snd_buf.len
-struct rpc_task;
-struct rpc_xprt;
-
struct rpc_xprt_ops {
void (*set_buffer_size)(struct rpc_xprt *xprt);
int (*reserve_xprt)(struct rpc_task *task);