HomeFreeBSD

nfscl: fix the handling of NFSERR_DELAY for Open/LayoutGet RPCs

Description

nfscl: fix the handling of NFSERR_DELAY for Open/LayoutGet RPCs

For a pNFS mount, the NFSv4.1/4.2 client uses compound RPCs that
have both Open and LayoutGet operations in them.
If the pNFS server were tp reply NFSERR_DELAY for one of these
compounds, the retry after a delay cannot be handled by
newnfs_request(), since there is a reference held on the open
state for the Open operation in them.

Fix this by adding these RPCs to the "don't do delay here"
list in newnfs_request().

This patch is only needed if the mount is using pNFS (the "pnfs"
mount option) and probably only matters if the MDS server
is issuing delegations as well as pNFS layouts.

Found by code inspection.

(cherry picked from commit f5ff282bc025f0395afcef40f5b6e778202c4181)

Details

Provenance
rmacklemAuthored on Apr 27 2021, 12:48 AM
Parents
rG3e67975a0c08: nfsd: fix a NFSv4.1 Linux client mount stuck in CLOSE_WAIT
Branches
Unknown
Tags
Unknown