Date: Wed, 10 Jun 2009 20:59:32 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/cam/scsi scsi_target.c src/sys/i386/acpica acpi_machdep.c src/sys/kern init_main.c kern_event.c kern_fork.c sys_pipe.c tty.c tty_pts.c uipc_mqueue.c uipc_socket.c vfs_aio.c vfs_subr.c src/sys/net bpf.c if.c if_tap.c if_tun.c ... Message-ID: <200906102100.n5AL0KgD021028@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
kib 2009-06-10 20:59:32 UTC
FreeBSD src repository
Modified files:
sys/cam/scsi scsi_target.c
sys/i386/acpica acpi_machdep.c
sys/kern init_main.c kern_event.c kern_fork.c
sys_pipe.c tty.c tty_pts.c uipc_mqueue.c
uipc_socket.c vfs_aio.c vfs_subr.c
sys/net bpf.c if.c if_tap.c if_tun.c
sys/security/audit audit_pipe.c
sys/sys event.h
Log:
SVN rev 193951 on 2009-06-10 20:59:32Z by kib
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
Revision Changes Path
1.77 +1 -1 src/sys/cam/scsi/scsi_target.c
1.43 +1 -1 src/sys/i386/acpica/acpi_machdep.c
1.302 +1 -1 src/sys/kern/init_main.c
1.125 +29 -14 src/sys/kern/kern_event.c
1.303 +1 -1 src/sys/kern/kern_fork.c
1.204 +2 -4 src/sys/kern/sys_pipe.c
1.319 +2 -2 src/sys/kern/tty.c
1.33 +4 -4 src/sys/kern/tty_pts.c
1.43 +2 -2 src/sys/kern/uipc_mqueue.c
1.334 +4 -8 src/sys/kern/uipc_socket.c
1.243 +2 -2 src/sys/kern/vfs_aio.c
1.766 +39 -8 src/sys/kern/vfs_subr.c
1.212 +1 -1 src/sys/net/bpf.c
1.337 +2 -2 src/sys/net/if.c
1.80 +1 -1 src/sys/net/if_tap.c
1.179 +1 -1 src/sys/net/if_tun.c
1.33 +1 -2 src/sys/security/audit/audit_pipe.c
1.40 +5 -2 src/sys/sys/event.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906102100.n5AL0KgD021028>
