diff options
author | jeff <jeff@FreeBSD.org> | 2006-01-30 08:19:01 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2006-01-30 08:19:01 +0000 |
commit | 822d3c835515a6e1d6b56ae89bfb042147973ea7 (patch) | |
tree | 70168c607192f3742303e6727b937c41a0fd9d9d /sys/kern/kern_ktrace.c | |
parent | 4eae100a42c2bc23a1e46d2b9cf024398efd73cc (diff) | |
download | FreeBSD-src-822d3c835515a6e1d6b56ae89bfb042147973ea7.zip FreeBSD-src-822d3c835515a6e1d6b56ae89bfb042147973ea7.tar.gz |
- Lock access to vrele() with VFS_LOCK_GIANT() rather than mtx_lock(&Giant).
Sponsored by: Isilon Systems, Inc.
Diffstat (limited to 'sys/kern/kern_ktrace.c')
-rw-r--r-- | sys/kern/kern_ktrace.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/kern/kern_ktrace.c b/sys/kern/kern_ktrace.c index fbb0b0d..7f42f67 100644 --- a/sys/kern/kern_ktrace.c +++ b/sys/kern/kern_ktrace.c @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include <sys/mutex.h> #include <sys/mac.h> #include <sys/malloc.h> +#include <sys/mount.h> #include <sys/namei.h> #include <sys/proc.h> #include <sys/unistd.h> @@ -830,9 +831,11 @@ ktrops(td, p, ops, facs, vp) mtx_unlock(&ktrace_mtx); PROC_UNLOCK(p); if (tracevp != NULL) { - mtx_lock(&Giant); + int vfslocked; + + vfslocked = VFS_LOCK_GIANT(tracevp->v_mount); vrele(tracevp); - mtx_unlock(&Giant); + VFS_UNLOCK_GIANT(vfslocked); } if (tracecred != NULL) crfree(tracecred); |