SUNRPC: select privileged port numbers at random
authorChuck Lever <cel@netapp.com>
Thu, 25 May 2006 05:40:49 +0000 (01:40 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 9 Jun 2006 13:34:05 +0000 (09:34 -0400)
commitb85d88068444ae5dcb1639bcef770ccbf085dd4e
treebcce3ef7e2f66465b09dc485fb1a280c111b2e31
parent73a3d07c1082145a3b78407bb5252df290470c4c
SUNRPC: select privileged port numbers at random

Make the RPC client select privileged ephemeral source ports at
random.  This improves DRC behavior on the server by using the
same port when reconnecting for the same mount point, but using
a different port for fresh mounts.

The Linux TCP implementation already does this for nonprivileged
ports.  Note that TCP sockets in TIME_WAIT will prevent quick reuse
of a random ephemeral port number by leaving the port INUSE until
the connection transitions out of TIME_WAIT.

Test plan:
Connectathon against every known server implementation using multiple
mount points.  Locking especially.

Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/xprtsock.c