]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC: r206818
authorrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 25 Apr 2010 01:56:31 +0000 (01:56 +0000)
committerrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sun, 25 Apr 2010 01:56:31 +0000 (01:56 +0000)
commitf9864e26154efcc7facd992ad2e1542d0e2c8810
treee3cbfb199cbd3833ffc6068f80ea9f2d50651cb6
parent86e6f0df193bc69d8abbcf16021491724925af8d
MFC: r206818
Avoid extraneous recovery cycles in the experimental NFS client
when an NFSv4 server reboots, by doing two things.
1 - Make the function that acquires a stateid for I/O operations
    block until recovery is complete, so that it doesn't acquire
    out of date stateids.
2 - Only allow a recovery once every 1/2 of a lease duration, since
    the NFSv4 server must provide a recovery grace period of at
    least a lease duration. This should avoid recoveries caused
    by an out of date stateid that was acquired for an I/O op.
    just before a recovery cycle started.

git-svn-id: svn://svn.freebsd.org/base/stable/8@207180 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/fs/nfs/nfsclstate.h
sys/fs/nfsclient/nfs_clstate.c