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. MFC after: 2 weeks
This commit is contained in:
parent
01bad87a76
commit
f5ff282bc0
@ -1067,7 +1067,9 @@ newnfs_request(struct nfsrv_descript *nd, struct nfsmount *nmp,
|
|||||||
nd->nd_procnum != NFSPROC_WRITE &&
|
nd->nd_procnum != NFSPROC_WRITE &&
|
||||||
nd->nd_procnum != NFSPROC_WRITEDS &&
|
nd->nd_procnum != NFSPROC_WRITEDS &&
|
||||||
nd->nd_procnum != NFSPROC_OPEN &&
|
nd->nd_procnum != NFSPROC_OPEN &&
|
||||||
|
nd->nd_procnum != NFSPROC_OPENLAYGET &&
|
||||||
nd->nd_procnum != NFSPROC_CREATE &&
|
nd->nd_procnum != NFSPROC_CREATE &&
|
||||||
|
nd->nd_procnum != NFSPROC_CREATELAYGET &&
|
||||||
nd->nd_procnum != NFSPROC_OPENCONFIRM &&
|
nd->nd_procnum != NFSPROC_OPENCONFIRM &&
|
||||||
nd->nd_procnum != NFSPROC_OPENDOWNGRADE &&
|
nd->nd_procnum != NFSPROC_OPENDOWNGRADE &&
|
||||||
nd->nd_procnum != NFSPROC_CLOSE &&
|
nd->nd_procnum != NFSPROC_CLOSE &&
|
||||||
|
Loading…
Reference in New Issue
Block a user