Cleanups for vnode lock debugging.

- Tell IS_LOCKING_VFS to ignore block and character devices.  specfs vnodes
aren't locked for io and they just generate lots of false positives.
 - Add newlines to the badlock prints.
This commit is contained in:
Jeff Roberson 2002-07-05 05:51:25 +00:00
parent 81928df848
commit d0641e4e8c

@ -453,13 +453,15 @@ extern int vfs_badlock_print;
/*
* [dfr] Kludge until I get around to fixing all the vfs locking.
*/
#define IS_LOCKING_VFS(vp) ((vp)->v_tag == VT_UFS \
#define IS_LOCKING_VFS(vp) ( ((vp)->v_tag == VT_UFS \
|| (vp)->v_tag == VT_NFS \
|| (vp)->v_tag == VT_LFS \
|| (vp)->v_tag == VT_ISOFS \
|| (vp)->v_tag == VT_MSDOSFS \
|| (vp)->v_tag == VT_DEVFS \
|| (vp)->v_tag == VT_UDF)
|| (vp)->v_tag == VT_UDF) \
&& ((vp)->v_type != VBLK \
&& (vp)->v_type != VCHR) )
#define ASSERT_VOP_LOCKED(vp, str) \
do { \
@ -467,7 +469,7 @@ do { \
\
if (_vp && IS_LOCKING_VFS(_vp) && !VOP_ISLOCKED(_vp, NULL)) { \
if (vfs_badlock_print) \
printf("%s: %p is not locked but should be", \
printf("%s: %p is not locked but should be\n", \
str, _vp); \
if (vfs_badlock_panic) \
Debugger("Lock violation.\n"); \
@ -483,7 +485,7 @@ do { \
lockstate = VOP_ISLOCKED(_vp, curthread); \
if (lockstate == LK_EXCLUSIVE) { \
if (vfs_badlock_print) \
printf("%s: %p is locked but should not be", \
printf("%s: %p is locked but should not be\n", \
str, _vp); \
if (vfs_badlock_panic) \
Debugger("Lock Violation.\n"); \