opnsense-src/sys/fs
Rick Macklem 5a45802b3c nfsv4 client: do the BindConnectionToSession as required
During a recent testing event, it was reported that the NFSv4.1/4.2
server erroneously bound the back channel to a new TCP connection.
RFC5661 specifies that the fore channel is implicitly bound to a
new TCP connection when an RPC with Sequence (almost any of them)
is done on it.  For the back channel to be bound to the new TCP
connection, an explicit BindConnectionToSession must be done as
the first RPC on the new connection.

Since new TCP connections are created by the "reconnect" layer
(sys/rpc/clnt_rc.c) of the krpc, this patch adds an optional
upcall done by the krpc whenever a new connection is created.
The patch also adds the specific upcall function that does a
BindConnectionToSession and configures the krpc to call it
when required.

This is necessary for correct interoperability with NFSv4.1/NFSv4.2
servers when the nfscbd daemon is running.

If doing NFSv4.1/NFSv4.2 mounts without this patch, it is
recommended that the nfscbd daemon not be running and that
the "pnfs" mount option not be specified.

PR:	254840

(cherry picked from commit 7763814fc9)
2021-04-29 17:43:50 -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 nfsv4 client: do the BindConnectionToSession as required 2021-04-29 17:43:50 -07:00
nfsclient nfsv4 client: do the BindConnectionToSession as required 2021-04-29 17:43:50 -07: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