freebsd-skq/sys
Konstantin Belousov d8b0556c6d Adapt vfs kqfilter to the shared vnode lock used by zfs write vop. Use
vnode interlock to protect the knote fields [1]. The locking assumes
that shared vnode lock is held, thus we get exclusive access to knote
either by exclusive vnode lock protection, or by shared vnode lock +
vnode interlock.

Do not use kl_locked() method to assert either lock ownership or the
fact that curthread does not own the lock. For shared locks, ownership
is not recorded, e.g. VOP_ISLOCKED can return LK_SHARED for the shared
lock not owned by curthread, causing false positives in kqueue subsystem
assertions about knlist lock.

Remove kl_locked method from knlist lock vector, and add two separate
assertion methods kl_assert_locked and kl_assert_unlocked, that are
supposed to use proper asserts. Change knlist_init accordingly.

Add convenience function knlist_init_mtx to reduce number of arguments
for typical knlist initialization.

Submitted by:	jhb [1]
Noted by:	jhb [2]
Reviewed by:	jhb
Tested by:	rnoland
2009-06-10 20:59:32 +00:00
..
amd64 Add alc(4), a driver for Atheros AR8131/AR8132 PCIe ethernet 2009-06-10 02:07:58 +00:00
arm Eliminate devclass_find_free_unit call here, since -1 gives the same 2009-06-10 17:39:19 +00:00
boot Add alc(4), a driver for Atheros AR8131/AR8132 PCIe ethernet 2009-06-10 02:07:58 +00:00
bsm
cam Adapt vfs kqfilter to the shared vnode lock used by zfs write vop. Use 2009-06-10 20:59:32 +00:00
cddl As far as I can tell systems that have less than 4GB are more often hurt 2009-06-10 01:21:32 +00:00
compat Regenerate 2009-06-10 13:48:43 +00:00
conf ip_divert.c requires both INET and IPFIREWALL to be present: 2009-06-10 20:57:06 +00:00
contrib All consumers of in_cksum.h have been properly #ifdefed already, 2009-06-10 11:19:34 +00:00
crypto Changed to M_NOWAIT when reallocing psc_buf in padlock_sha_update(), 2009-05-27 09:52:12 +00:00
ddb Place hostnames and similar information fully under the prison system. 2009-05-29 21:27:12 +00:00
dev Make the demo/stress tools build again, after my changes to param(). 2009-06-10 18:26:02 +00:00
fs For cd9660_ioctl, check for recycled vnode after locking it. 2009-06-10 15:48:34 +00:00
gdb
geom Simplify. 2009-06-05 23:35:43 +00:00
gnu Fix r193923 by noting that type of a_fp is struct file *, not int. 2009-06-10 14:24:31 +00:00
i386 Adapt vfs kqfilter to the shared vnode lock used by zfs write vop. Use 2009-06-10 20:59:32 +00:00
ia64 Import ACPICA 20090521. 2009-06-05 18:44:36 +00:00
isa Rename statclock_disable variable to atrtcclock_disable that it actually is, 2009-05-03 17:47:21 +00:00
kern Adapt vfs kqfilter to the shared vnode lock used by zfs write vop. Use 2009-06-10 20:59:32 +00:00
kgssapi Place hostnames and similar information fully under the prison system. 2009-05-29 21:27:12 +00:00
libkern add explanatory header license 2009-06-09 21:29:16 +00:00
mips pmap_enter() *must* set PG_WRITEABLE on the given page if it creates a 2009-05-23 22:05:14 +00:00
modules Attempt to fix parallel build. 2009-06-10 11:33:47 +00:00
net Adapt vfs kqfilter to the shared vnode lock used by zfs write vop. Use 2009-06-10 20:59:32 +00:00
net80211 protect callouts with the com lock 2009-06-09 17:12:19 +00:00
netatalk Move "options MAC" from opt_mac.h to opt_global.h, as it's now in GENERIC 2009-06-05 14:55:22 +00:00
netgraph Close long existed race with net.inet.ip.fw.one_pass = 0: 2009-06-09 21:27:11 +00:00
netinet Change a few members of tcpcb that store cached copies of ticks to be ints 2009-06-10 18:27:15 +00:00
netinet6 Prevent integer overflow in direct pipe write code from circumventing 2009-06-10 10:31:11 +00:00
netipsec Properly hide IPv4 only variables and functions under #ifdef INET. 2009-06-10 19:25:46 +00:00
netipx Put the variable declarations for TCPDEBUG under #ifdef INET as well. 2009-06-10 09:28:50 +00:00
netnatm Reimplement the netisr framework in order to support parallel netisr 2009-06-01 10:41:38 +00:00
netncp
netsmb Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
nfs Add cpu_flush_dcache() for use after non-DMA based I/O so that a 2009-05-18 18:37:18 +00:00
nfsclient After r193232 rt_tables in vnet.h are no longer indirectly dependent on 2009-06-08 19:57:35 +00:00
nfsserver Move "options MAC" from opt_mac.h to opt_global.h, as it's now in GENERIC 2009-06-05 14:55:22 +00:00
nlm Correct typo; errno => error. 2009-06-04 11:22:53 +00:00
opencrypto Fix cryptodev UIO creation. 2009-05-23 13:23:46 +00:00
pc98 Remove MAC kernel config files and add "options MAC" to GENERIC, with the 2009-06-02 18:31:08 +00:00
pci When user_frac in the polling subsystem is low it is going to busy the 2009-05-30 15:14:44 +00:00
powerpc Move from using devclass_find_free_unit(ata_devclass, 0) to -1 for the 2009-06-10 17:40:18 +00:00
rpc For the case where another thread was doing a connect and that 2009-06-10 19:02:09 +00:00
security Adapt vfs kqfilter to the shared vnode lock used by zfs write vop. Use 2009-06-10 20:59:32 +00:00
sparc64 Remove MAC kernel config files and add "options MAC" to GENERIC, with the 2009-06-02 18:31:08 +00:00
sun4v Adjust the padding of struct pcpu to r193219. 2009-06-03 19:31:26 +00:00
sys Adapt vfs kqfilter to the shared vnode lock used by zfs write vop. Use 2009-06-10 20:59:32 +00:00
tools Move all sound related scripts to its own 'sound' subdir. 2009-06-10 06:49:45 +00:00
ufs Move "options MAC" from opt_mac.h to opt_global.h, as it's now in GENERIC 2009-06-05 14:55:22 +00:00
vm Eliminate an unnecessary restriction on the vm object type from 2009-06-09 17:04:39 +00:00
xdr MFdevbranch 192944 2009-05-28 08:18:12 +00:00
xen Make ipi_cpu() function as intended. 2009-05-30 08:53:13 +00:00
Makefile Remove the unmaintained University of Michigan NFSv4 client from 8.x 2009-05-22 12:35:12 +00:00