diff options
author | jeff <jeff@FreeBSD.org> | 2002-07-05 05:51:25 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2002-07-05 05:51:25 +0000 |
commit | 27d14d46681c802942a9e8bceb27c468b22531f3 (patch) | |
tree | 49ce800c75b739540e01769ba8271738b0c3896c | |
parent | 42fdc9105e5b2786955332d169778ed35a68883c (diff) | |
download | FreeBSD-src-27d14d46681c802942a9e8bceb27c468b22531f3.zip FreeBSD-src-27d14d46681c802942a9e8bceb27c468b22531f3.tar.gz |
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.
-rw-r--r-- | sys/sys/vnode.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index 70331a8..3c75429 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -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"); \ |