SUNRPC: NFS_ROOT always uses the same XIDs
authorChuck Lever <cel@netapp.com>
Thu, 25 May 2006 05:40:51 +0000 (01:40 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 9 Jun 2006 13:34:06 +0000 (09:34 -0400)
commitbf3fcf89552f24657bcfb6a9d73cd167ebb496c6
tree83ffe1cbdcd4a6358f97b92962f57d557158f317
parentb85d88068444ae5dcb1639bcef770ccbf085dd4e
SUNRPC: NFS_ROOT always uses the same XIDs

The XID generator uses get_random_bytes to generate an initial XID.
NFS_ROOT starts up before the random driver, though, so get_random_bytes
doesn't set a random XID for NFS_ROOT.  This causes NFS_ROOT mount points
to reuse XIDs every time the client is booted.  If the client boots often
enough, the server will start serving old replies out of its DRC.

Use net_random() instead.

Test plan:
I/O intensive workloads should perform well and generate no errors.  Traces
taken during client reboots should show that NFS_ROOT mounts use unique
XIDs after every reboot.

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