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.

MFC after: 2 weeks

Details

Provenance
rmacklemAuthored on Apr 25 2021, 7:52 PM
Parents
rG7d222ce3c10b: Fix NOINET[6],!VIMAGE builds after FIB_ALGO addition to GENERIC
Branches
Unknown
Tags
Unknown