SUNRPC: Use only rpcbind v2 for AF_INET requests
authorChuck Lever <chuck.lever@oracle.com>
Wed, 25 Jun 2008 21:24:54 +0000 (17:24 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 9 Jul 2008 16:09:37 +0000 (12:09 -0400)
commit40fef8a649e5344bfb6a67a7cc3def3e0dad6448
treebfcbea1a0cf81ca14d59debb6fb77e83a430b2ab
parent8842413aa4c3220ce9313791f99808fc149ca16d
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>
fs/Kconfig
net/sunrpc/rpcb_clnt.c