diff options
author | Rick Macklem <rmacklem@FreeBSD.org> | 2024-06-22 22:56:40 +0000 |
---|---|---|
committer | Rick Macklem <rmacklem@FreeBSD.org> | 2024-06-22 22:56:40 +0000 |
commit | dfaeeacc2cc29d0497ecd4cd5b7fd0d5ab61fcd5 (patch) | |
tree | b18b55eb88578ee6686bdc3172183e4213477fe7 /usr.bin/rwall/(public-mirror) | |
parent | 48dbc2a4f9fcf893afba107b4dbbcb1c161aeb55 (diff) | |
download | src-main.tar.gz src-main.zip |
On Feb. 28, a problem was reported on freebsd-stable@ where a
nfsd thread processing an ExchangeID operation was blocked for
a long time by another nfsd thread performing a copy_file_range.
This occurred because the copy_file_range was taking a long time,
but also because handling a clientID requires that all other nfsd
threads be blocked via an exclusive lock, as required by ExchangeID.
This patch allows clientID handling to be done with only a mutex
held (instead of an exclusive lock that blocks all other nfsd threads)
when vfs.nfsd.enable_locallocks is 0. For the case of
vfs.nfsd.enable_locallocks set to 1, the exclusive lock that
blocks all nfsd threads is still required.
This patch does make changing the value of vfs.nfsd.enable_locallocks
somewhat racy. A future commit will ensure any change is done when
all nfsd threads are blocked to avoid this racyness.
MFC after: 1 month
Diffstat (limited to 'usr.bin/rwall/(public-mirror)')
0 files changed, 0 insertions, 0 deletions