freebsd-dev/sys/fs
Rick Macklem c28cb257dd nfscl: Fix NFSv4.1/4.2 mount recovery from an expired lease
The most difficult NFSv4 client recovery case happens when the
lease has expired on the server.  For NFSv4.0, the client will
receive a NFSERR_EXPIRED reply from the server to indicate this
has happened.
For NFSv4.1/4.2, most RPCs have a Sequence operation and, as such,
the client will receive a NFSERR_BADSESSION reply when the lease
has expired for these RPCs.  The client will then call nfscl_recover()
to handle the NFSERR_BADSESSION reply.  However, for the expired lease
case, the first reclaim Open will fail with NFSERR_NOGRACE.

This patch recognizes this case and calls nfscl_expireclient()
to handle the recovery from an expired lease.

This patch only affects NFSv4.1/4.2 mounts when the lease
expires on the server, due to a network partitioning that
exceeds the lease duration or similar.

MFC after:	2 weeks
2021-05-19 14:52:56 -07:00
..
autofs Ensure that dirent's d_off field is initialized 2021-01-03 11:50:31 -05:00
cd9660 Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
cuse Fix for loading cuse.ko via rc.d . Make sure we declare the cuse(3) 2020-10-23 08:44:53 +00:00
deadfs vn_open(): If the vnode is reclaimed during open(2), do not return error. 2021-02-12 03:02:20 +02:00
devfs devfs: Avoid comparison with an uninitialized var in devfs_fp_check() 2021-05-03 13:24:30 -04:00
ext2fs Make encode/decode extra time functions inline. 2021-05-08 06:42:20 +03:00
fdescfs fdescfs: allow shared locking of root vnode 2021-05-19 17:58:54 +00:00
fifofs fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
fuse fusefs: fix a dead store in fuse_vnop_advlock 2021-03-19 19:38:57 -06:00
mntfs Add a new "mntfs" pseudo file system which provides private device vnodes for 2020-03-06 18:41:37 +00:00
msdosfs Fix makefs bootstrap after d485c77f20 2021-02-22 17:55:45 +00:00
nfs nfsd: Reduce the callback timeout to 800msec 2021-05-18 16:17:58 -07:00
nfsclient nfscl: Fix NFSv4.1/4.2 mount recovery from an expired lease 2021-05-19 14:52:56 -07:00
nfsserver nfsd: Add support for CLAIM_DELEG_CUR_FH to the NFSv4.1/4.2 Open 2021-05-18 15:53:54 -07:00
nullfs nullfs: protect against user creating inconsistent state 2021-04-02 15:40:25 +03:00
procfs procfs_map: switch to use vm_object_kvme_type 2021-05-13 20:10:35 +03:00
pseudofs pseudofs: use vget_prep + vget_finish instead of vget + the interlock 2021-05-19 17:58:42 +00:00
smbfs Ensure that dirent's d_off field is initialized 2021-01-03 11:50:31 -05:00
tmpfs tmpfs: reimplement the mtime scan to use the lazy list 2021-05-15 20:48:45 +00:00
udf Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
unionfs Split out cwd/root/jail, cmask state from filedesc table 2020-11-17 21:14:13 +00:00