]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
nfscl: fix the handling of NFSERR_DELAY for Open/LayoutGet RPCs
authorRick Macklem <rmacklem@FreeBSD.org>
Tue, 27 Apr 2021 00:48:21 +0000 (17:48 -0700)
committerRick Macklem <rmacklem@FreeBSD.org>
Tue, 27 Apr 2021 00:48:21 +0000 (17:48 -0700)
commitf5ff282bc025f0395afcef40f5b6e778202c4181
treeb238d25da04c2eab1fdf2d27236efec6b239a0b8
parent01bad87a76ddd9f116d487899f3ea8529a7e776b
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
sys/fs/nfs/nfs_commonkrpc.c