summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorthib <thib@openbsd.org>2009-08-27 23:26:56 +0000
committerthib <thib@openbsd.org>2009-08-27 23:26:56 +0000
commit00cb47382d7b1975afa6a1c047964d09dbaf54c8 (patch)
tree4ac9d43dda0ba707336a0e8efa791433d1751aef /lib
parentsync (diff)
downloadwireguard-openbsd-00cb47382d7b1975afa6a1c047964d09dbaf54c8.tar.xz
wireguard-openbsd-00cb47382d7b1975afa6a1c047964d09dbaf54c8.zip
introduce a flag member to struct nfs_aiod, and use flags instead of the exit
and worked members. nad_worked becomes NFSAIOD_WAKEUP, which is set after if an aiod was removed from the idle list and woken up by nfs_asyncio(). don't rely on tsleep wchans being unique, that is keep going back to sleep if woken up unless the NFSAIOD_WAKEUP flag is set. fix a divide by zero crash if nfs.vfs.iothreads is set to 0, as that can happen when we recalculate the maximum buf's to queue up for each aiod. in nfs_asyncio() set the nad_mnt to NULL before returning the aiod back to the idle list in the case where we have already queued up to many bufs, otherwise we trip an assertion. minimize the time we are holding the nfs_aiodl_mtx to only when we are inserting or removing from the lists, with the exception of nfs_set_naiod() as it would make the loops more complicated and its uncommon in any case. tested by myself and deraadt@ "fine with me" deraadt@
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions