freebsd-src/sys/fs
Rick Macklem d4a11b3e3b nfscl: Fix CreateSession for an established ClientID
Commit 981ef32230 added optional use of the session
slots marked bad to recover a new session when all
slots are marked bad.  The recovery worked against
a FreeBSD NFSv4.1/4.2 server, but not a Linux one.
It turns out that it was a bug in the FreeBSD client
and not the Linux server.

This patch fixes the client so that DeleteSession
followed by CreateSession after receiving a
NFSERR_BADSESSION error reply works against the
Linux server (and conforms to the RFC).

This also implies that the FreeBSD NFSv4.1/4.2
server needs to be fixed in a future commit.
Without the fix, the FreeBSD server does a full
recovery, including creation of a new ClientID,
but since "intr" mounts were broken, this does
not result in a regression.

This patch only affects the case where a CreateSession
is done for an already confirmed ClientID, which was
not being done prior to commit 981ef32230.

PR: 260011
MFC after:	2 weeks
2022-07-11 16:50:34 -07:00
..
autofs vfs: remove cn_thread 2021-10-11 13:21:47 +00:00
cd9660 vfs: NDFREE(&nd, NDF_ONLY_PNBUF) -> NDFREE_PNBUF(&nd) 2022-03-24 10:20:51 +00:00
cuse cuse(3): Remove PAGE_SIZE from libcuse. 2022-06-25 12:01:59 +02: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 fs: fix a few common typos in source code comments 2022-02-06 13:48:31 +01:00
ext2fs ext2: plug a set-but-not-used var 2022-04-19 12:45:57 +00:00
fdescfs fdescfs: allow chown/utime etc on fdescfs fd for underlying files opened with O_PATH 2022-06-06 22:27:36 +03:00
fifofs fifos: delegate unhandled kqueue filters to underlying filesystem 2021-10-12 02:43:07 -05:00
fuse fusefs: handle evil servers that return illegal inode numbers 2022-05-12 14:32:26 -06:00
mntfs mntfs: lock mntfs pseudo devfs vnode properly 2021-11-13 01:00:41 +02:00
msdosfs vfs: NDFREE(&nd, NDF_ONLY_PNBUF) -> NDFREE_PNBUF(&nd) 2022-03-24 10:20:51 +00:00
nfs nfscl: Enable detection of bad session slots 2022-07-10 13:33:19 -07:00
nfsclient nfscl: Fix CreateSession for an established ClientID 2022-07-11 16:50:34 -07:00
nfsserver nfscl: Add optional support for slots marked bad 2022-07-09 14:43:16 -07:00
nullfs null_vptocnp(): busy nullfs mp instead of refing it 2022-06-14 10:32:45 +03:00
procfs sysent: Get rid of bogus sys/sysent.h include. 2022-05-28 20:52:17 +03:00
pseudofs pseudofs: Destroy vncache hashtbl on pseudofs module unload. 2021-12-09 21:41:08 +00:00
smbfs smbfs: Remove unused variable. 2022-04-07 17:01:28 -07:00
tmpfs insmntque1(): remove useless arguments 2022-01-31 16:49:08 +02:00
udf vfs: NDFREE(&nd, NDF_ONLY_PNBUF) -> NDFREE_PNBUF(&nd) 2022-03-24 10:20:51 +00:00
unionfs unionfs: Use __diagused for a variable only used in KASSERT(). 2022-04-13 16:08:20 -07:00