]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
nfscl: Add a check for "has acquired a delegation" to nfscl_removedeleg()
authorRick Macklem <rmacklem@FreeBSD.org>
Mon, 27 Sep 2021 01:37:25 +0000 (18:37 -0700)
committerRick Macklem <rmacklem@FreeBSD.org>
Mon, 27 Sep 2021 01:37:25 +0000 (18:37 -0700)
commit62c5be4ab4c8b8127185286e148638cb8cdf45f4
tree08eed987f6b09e81c198cd9ccf16344f252ef512
parent15d077995bd2c56b7b1742ea2d4e9070ff7e9427
nfscl: Add a check for "has acquired a delegation" to nfscl_removedeleg()

Commit 5e5ca4c8fc53 added a flag to a NFSv4 mount point that is set when
the first delegation is acquired from the NFSv4 server.

For a common case where delegations are not being issued by the
NFSv4 server, the nfscl_removedeleg() code acquires the mutex lock for
open/lock state, finds the delegation list empty, then just unlocks the
mutex and returns. This patch adds a check of the flag to avoid the
need to acquire the mutex for this common case.

This change appears to be performance neutral for a small number
of opens, but should reduce lock contention for a large number of opens
for the common case where server is not issuing delegations.

This commit should not affect the high level semantics of delegation
handling.

MFC after:      2 weeks
sys/fs/nfsclient/nfs_clstate.c