diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2008-06-25 17:24:54 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-07-09 12:09:37 -0400 |
commit | 40fef8a649e5344bfb6a67a7cc3def3e0dad6448 (patch) | |
tree | bfcbea1a0cf81ca14d59debb6fb77e83a430b2ab /net/sunrpc/rpcb_clnt.c | |
parent | 8842413aa4c3220ce9313791f99808fc149ca16d (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/rpcb_clnt.c')
-rw-r--r-- | net/sunrpc/rpcb_clnt.c | 12 |
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 | ||
594 | static struct rpcb_info rpcb_next_version[] = { | 594 | static 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 | ||
614 | static struct rpcb_info rpcb_next_version6[] = { | 604 | static 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 | }, |