opnsense-src/sys/fs
Rick Macklem 4543735a5f nfsd: fix replies from session cache for multiple retries
Recent testing of network partitioning a FreeBSD NFSv4.1
server from a Linux NFSv4.1 client identified problems
with both the FreeBSD server and Linux client.

Commit 05a39c2c1c fixed replying with the cached reply in
in the session slot if same session slot sequence#.
However, the code uses the reply and, as such,
will fail for a subsequent retry of the RPC.
A subsequent retry would be an extremely rare event,
but this patch fixes this, so long as m_copym(..M_NOWAIT)
does not fail, which should also be a rare event.

This fix affects the exceedingly rare case where a NFSv4
client retries a non-idempotent RPC, such as a lock
operation, multiple times.  Note that retries only occur
after the client has needed to create a new TCP connection,
with a new TCP connection for each retry.

(cherry picked from commit 22cefe3d83)
2021-04-24 15:27:26 -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-24 09:42:42 +02:00
devfs devfs: fix use count leak when using TIOCSCTTY 2021-04-10 05:57:55 +00:00
ext2fs In ext2fs, BA_CLRBUF is used in ext2_balloc() not UFS_BALLOC(). 2020-12-08 00:49:31 +00:00
fdescfs Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +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-04-08 02:15:46 +00:00
mntfs Add a new "mntfs" pseudo file system which provides private device vnodes for 2020-03-06 18:41:37 +00:00
msdosfs msdosfs: fix vnode leak with msdosfs_rename() 2021-03-02 18:43:26 +00:00
nfs nfsd: fix replies from session cache for multiple retries 2021-04-24 15:27:26 -07:00
nfsclient nfs client: depend on xdr 2021-04-23 14:14:09 +03:00
nfsserver nfsd: fix replies from session cache for retried RPCs 2021-04-22 06:54:31 -07:00
nullfs nullfs: protect against user creating inconsistent state 2021-04-09 07:52:05 +03:00
procfs fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
pseudofs pseudofs: limit writes to 1M 2021-04-23 14:14:09 +03:00
smbfs Ensure that dirent's d_off field is initialized 2021-01-03 11:50:31 -05:00
tmpfs tmpfs: implement pathconf(_PC_SYMLINK_MAX) 2021-03-17 09:49:49 +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