HomeFreeBSD

nfscl: fix delegation recall when the file is not open

Description

nfscl: fix delegation recall when the file is not open

Without this patch, if a NFSv4 server recalled a
delegation when the file is not open, the renew
thread would block in the NFS VOP_INACTIVE()
trying to acquire the client state lock that it
already holds.

This patch fixes the problem by delaying the
vrele() call until after the client state
lock is released.

This bug has been in the NFSv4 client for
a long time, but since it only affects
delegation when recalled due to another
client opening the file, it got missed
during previous testing.

Until you have this patch in your client,
you should avoid the use of delegations.

(cherry picked from commit 02695ea8909d818ceaa726f90f889889dfd39fac)

Details

Provenance
rmacklemAuthored on Apr 25 2021, 7:52 PM
Parents
rG8c10d2979c55: less: upgrade to v581.2.
Branches
Unknown
Tags
Unknown