mirror of
https://github.com/opnsense/src.git
synced 2026-06-06 15:22:34 -04:00
nfscl: Handle the NFSERR_RETRYUNCACHEDREP error from a NFSv4 server
In a recent email list discussion related to NFSv4 mount problems against a non-FreeBSD NFSv4 server, the reporter of the issue noted that the server had replied 10068 (NFSERR_RETRYUNCACHEDREP). This did not seem related to the mount problem, but I had never seen this error before. It indicates that an RPC retry after a new TCP connection has been established failed because the server did not cache the reply. Since this should only happen for idempotent operations, redoing the RPC should be safe. This patch modifies the NFSv4.1/4.2 client to redo the RPC instead of considering the server error fatal. It should only affect the unusual case where TCP connections to NFSv4 servers are breaking without the NFSv4 server rebooting. Reported by: J David <j.devid.lists@gmail.com> MFC after: 2 weeks
This commit is contained in:
parent
b293497146
commit
c4e298251a
1 changed files with 2 additions and 1 deletions
|
|
@ -1300,7 +1300,8 @@ tryagain:
|
|||
nd->nd_procnum != NFSPROC_LOCKU))) ||
|
||||
(nd->nd_repstat == NFSERR_DELAY &&
|
||||
(nd->nd_flag & ND_NFSV4) == 0) ||
|
||||
nd->nd_repstat == NFSERR_RESOURCE) {
|
||||
nd->nd_repstat == NFSERR_RESOURCE ||
|
||||
nd->nd_repstat == NFSERR_RETRYUNCACHEDREP) {
|
||||
/* Clip at NFS_TRYLATERDEL. */
|
||||
if (timespeccmp(&trylater_delay,
|
||||
&nfs_trylater_max, >))
|
||||
|
|
|
|||
Loading…
Reference in a new issue