aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2008-06-25 17:24:54 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2008-07-09 12:09:37 -0400
commit40fef8a649e5344bfb6a67a7cc3def3e0dad6448 (patch)
treebfcbea1a0cf81ca14d59debb6fb77e83a430b2ab /net/sunrpc
parent8842413aa4c3220ce9313791f99808fc149ca16d (diff)
SUNRPC: Use only rpcbind v2 for AF_INET requests
Some server vendors support the higher versions of rpcbind only for AF_INET6. The kernel doesn't need to use v3 or v4 for AF_INET anyway, so change the kernel's rpcbind client to query AF_INET servers over rpcbind v2 only. This has a few interesting benefits: 1. If the rpcbind request is going over TCP, and the server doesn't support rpcbind versions 3 or 4, the client reduces by two the number of ephemeral ports left in TIME_WAIT for each rpcbind request. This will help during NFS mount storms. 2. The rpcbind interaction with servers that don't support rpcbind versions 3 or 4 will use less network traffic. Also helpful during mount storms. 3. We can eliminate the kernel build option that controls whether the kernel's rpcbind client uses rpcbind version 3 and 4 for AF_INET servers. Less complicated kernel configuration... Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc')
-rw-r--r--net/sunrpc/rpcb_clnt.c12
1 files changed, 0 insertions, 12 deletions
diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
index 625ba72e624a..c62e446723ae 100644
--- a/net/sunrpc/rpcb_clnt.c
+++ b/net/sunrpc/rpcb_clnt.c
@@ -592,16 +592,6 @@ static struct rpc_procinfo rpcb_procedures4[] = {
592}; 592};
593 593
594static struct rpcb_info rpcb_next_version[] = { 594static struct rpcb_info rpcb_next_version[] = {
595#ifdef CONFIG_SUNRPC_BIND34
596 {
597 .rpc_vers = RPCBVERS_4,
598 .rpc_proc = &rpcb_procedures4[RPCBPROC_GETADDR],
599 },
600 {
601 .rpc_vers = RPCBVERS_3,
602 .rpc_proc = &rpcb_procedures3[RPCBPROC_GETADDR],
603 },
604#endif
605 { 595 {
606 .rpc_vers = RPCBVERS_2, 596 .rpc_vers = RPCBVERS_2,
607 .rpc_proc = &rpcb_procedures2[RPCBPROC_GETPORT], 597 .rpc_proc = &rpcb_procedures2[RPCBPROC_GETPORT],
@@ -612,7 +602,6 @@ static struct rpcb_info rpcb_next_version[] = {
612}; 602};
613 603
614static struct rpcb_info rpcb_next_version6[] = { 604static struct rpcb_info rpcb_next_version6[] = {
615#ifdef CONFIG_SUNRPC_BIND34
616 { 605 {
617 .rpc_vers = RPCBVERS_4, 606 .rpc_vers = RPCBVERS_4,
618 .rpc_proc = &rpcb_procedures4[RPCBPROC_GETADDR], 607 .rpc_proc = &rpcb_procedures4[RPCBPROC_GETADDR],
@@ -621,7 +610,6 @@ static struct rpcb_info rpcb_next_version6[] = {
621 .rpc_vers = RPCBVERS_3, 610 .rpc_vers = RPCBVERS_3,
622 .rpc_proc = &rpcb_procedures3[RPCBPROC_GETADDR], 611 .rpc_proc = &rpcb_procedures3[RPCBPROC_GETADDR],
623 }, 612 },
624#endif
625 { 613 {
626 .rpc_proc = NULL, 614 .rpc_proc = NULL,
627 }, 615 },