]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC: r337438
authorrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 24 Aug 2018 22:48:19 +0000 (22:48 +0000)
committerrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 24 Aug 2018 22:48:19 +0000 (22:48 +0000)
commitf3083765ded6d1f00be84c33104082c84a98d14c
treeb18bdb0e639b59005d62c18b6315a502f8306123
parent9a982e4b21310f80275e5ab4868e36201e16c553
MFC: r337438
Allow newnfs_request() to retry all callback RPCs with an NFSERR_DELAY reply.

The code in newnfs_request() retries RPCs that get a reply of NFSERR_DELAY,
but exempts certain NFSv4 operations. However, for callback RPCs, there
should not be any exemptions at this time. The code would have erroneously
exempted the CBRECALL callback, since it has the same operation number as
the CLOSE operation.
This patch fixes this by checking for a callback RPC (indicated by clp != NULL)
and not checking for exempt operations for callbacks.
This would have only affected the NFSv4 server when delegations are enabled
(they are not enabled by default) and the client replies to CBRECALL with
NFSERR_DELAY. This may never actually happen.
Spotted during code inspection.

git-svn-id: svn://svn.freebsd.org/base/stable/10@338308 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/fs/nfs/nfs_commonkrpc.c