HomeFreeBSD

nfsd: make the server repeat CB_RECALL every couple of seconds

Description

nfsd: make the server repeat CB_RECALL every couple of seconds

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. This will fix the back channel, but the
first attempt at a callback like CB_RECALL will already have
failed. Without this patch, a CB_RECALL will not be retried
and that can result in a 5 minute delay until the delegation
times out.

This patch modifies the code so that it will retry the
CB_RECALL every couple of seconds, often avoiding the
5 minute delay.

This is not critical for correct behaviour, but avoids
the 5 minute delay for the case where the Linux client
re-binds the back channel via BindConnectionToSession.

(cherry picked from commit 7a606f280a3e174dcdd12736b7b976903809eb9c)

Details

Provenance
rmacklemAuthored on Apr 5 2021, 1:15 AM
Parents
rG44f01dbeda67: Ensure that the mount command shows "with quotas" when quotas are enabled.
Branches
Unknown
Tags
Unknown