freebsd-src/sys/fs
Rick Macklem 14bbf4fe5a nfscl: Handle a Getattr failure with NFSERR_DELAY following Open
During testing at a recent IETF NFSv4 Bakeathon, a non-FreeBSD
server was rebooted.  After the reboot, the FreeBSD client sent
an Open/Claim_previous with a Getattr after the Open in the same
compound.  The Open/Claim_previous was done to recover the Open
and a Delegation for for a file.  The Open succeeded, but the
Getattr after the Open failed with NFSERR_DELAY.  This resulted
in the FreeBSD client retrying the entire RPC over and over again,
until the server's recovery grace period ended.  Since the Open
succeeded, there was no need to retry the entire RPC.

This patch modifies the NFSv4 client side recovery Open/Claim_previous
RPC reply handling to deal with this case.  With this patch, the
Getattr reply of NFSERR_DELAY is ignored and the successful Open
reply is processed.

This bug will not normally affect users, since this non-FreeBSD
server is not widely used (it may not even have shipped to any
customers).

MFC after:	1 month
2023-10-21 18:33:33 -07:00
..
autofs sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
cd9660 sys: Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:17 -06:00
cuse sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
deadfs sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
devfs devfs: add integrity asserts for cdevp_list 2023-09-21 11:51:12 -05:00
ext2fs sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
fdescfs Fix MNT_IGNORE for devfs, fdescfs and nullfs 2023-08-26 12:08:37 +01:00
fifofs sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
fuse fusefs: sanitize FUSE_READLINK results for embedded NULs 2023-10-07 08:22:03 -06:00
mntfs sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
msdosfs sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
nfs nfscl: Make NFSv4.2 Copy set atime on infd 2023-10-18 13:07:39 -07:00
nfsclient nfscl: Handle a Getattr failure with NFSERR_DELAY following Open 2023-10-21 18:33:33 -07:00
nfsserver nfsd: Fix NFSv4.1/4.2 Claim_Deleg_Cur_FH 2023-10-19 12:35:35 -07:00
nullfs Fix MNT_IGNORE for devfs, fdescfs and nullfs 2023-08-26 12:08:37 +01:00
procfs sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
pseudofs Remove my middle name. 2023-08-17 15:08:30 +02:00
smbfs sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
tarfs vfs: use __enum_uint8 for vtype and vstate 2023-07-05 15:06:30 +00:00
tmpfs sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
udf sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
unionfs sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00