d8b0556c6d
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 |
||
---|---|---|
.. | ||
audit_arg.c | ||
audit_bsm_domain.c | ||
audit_bsm_errno.c | ||
audit_bsm_fcntl.c | ||
audit_bsm_klib.c | ||
audit_bsm_socket_type.c | ||
audit_bsm_token.c | ||
audit_bsm.c | ||
audit_ioctl.h | ||
audit_pipe.c | ||
audit_private.h | ||
audit_syscalls.c | ||
audit_trigger.c | ||
audit_worker.c | ||
audit.c | ||
audit.h |