]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
nfsd: fix BindConnectionToSession so that it clears "cb path down"
authorRick Macklem <rmacklem@FreeBSD.org>
Sun, 4 Apr 2021 22:05:39 +0000 (15:05 -0700)
committerRick Macklem <rmacklem@FreeBSD.org>
Sun, 4 Apr 2021 22:05:39 +0000 (15:05 -0700)
commit6f2addd838810ce33c7e9ad9543827d45e0b491c
tree8f967319f4a65fbdd9a83022951dfac2bec3db76
parentd218c6f6af336135ea88342d472b0e66c21239c9
nfsd: fix BindConnectionToSession so that it clears "cb path down"

Commit 01ae8969a9ee stopped the NFSv4.1/4.2 server from implicitly
binding the back channel to a new TCP connection so that it
conforms to RFC5661, for NFSv4.1/4.2. An effect of this
for the Linux NFS client is that it will do a
BindConnectionToSession when it sees NFSV4SEQ_CBPATHDOWN
set in a sequence reply. It will do this for every RPC
reply until it no longer sees the flag.
Without that patch, this will happen until the client does
an Open, which will clear LCL_CBDOWN.

This patch clears LCL_CBDOWN right away, so that
NFSV4SEQ_CBPATHDOWN will no longer be sent to the client
in Sequence replies and the Linux client will not repeat
the BindConnectionToSession RPCs.

This is not critical for correct behaviour, but reduces
RPC overheads for cases where the Open will not be done
for a while.

MFC after: 2 weeks
sys/fs/nfsserver/nfs_nfsdstate.c