]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
nfscl: Fix CreateSession for an established ClientID
authorRick Macklem <rmacklem@FreeBSD.org>
Mon, 11 Jul 2022 23:50:34 +0000 (16:50 -0700)
committerRick Macklem <rmacklem@FreeBSD.org>
Thu, 28 Jul 2022 20:18:49 +0000 (13:18 -0700)
commit9bbf57a2ad4666371d8de3cde0a9b8879e826590
tree179e7606d8d933a47a5fcbb0d08c006cd406cd84
parent99ff1bd55733d8fd20f6b70922639fa25b434ce9
nfscl: Fix CreateSession for an established ClientID

Commit 981ef32230b2 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 981ef32230b2.

PR: 260011
(cherry picked from commit d4a11b3e3bddb1fa3bdd101e12aea6f5937356fa)
sys/fs/nfsclient/nfs_clrpcops.c