diff options
author | jhb <jhb@FreeBSD.org> | 2002-06-07 05:41:27 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2002-06-07 05:41:27 +0000 |
commit | eb29fde68b289c16b9ea94acea2342fc6d6042d7 (patch) | |
tree | 6661e3dca12190987133994438ecc89badab8f0d /sys/kern/kern_exit.c | |
parent | e277387a704340cabd0a8f106eee363613966b38 (diff) | |
download | FreeBSD-src-eb29fde68b289c16b9ea94acea2342fc6d6042d7.zip FreeBSD-src-eb29fde68b289c16b9ea94acea2342fc6d6042d7.tar.gz |
Properly lock accesses to p_tracep and p_traceflag. Also make a few
ktrace-only things #ifdef KTRACE that were not before.
Diffstat (limited to 'sys/kern/kern_exit.c')
-rw-r--r-- | sys/kern/kern_exit.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index d44209a..d35b3e1 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -64,6 +64,9 @@ #include <sys/shm.h> #include <sys/sem.h> #include <sys/jail.h> +#ifdef KTRACE +#include <sys/ktrace.h> +#endif #include <vm/vm.h> #include <vm/vm_extern.h> @@ -296,9 +299,11 @@ exit1(td, rv) * release trace file */ PROC_LOCK(p); + mtx_lock(&ktrace_mtx); p->p_traceflag = 0; /* don't trace the vrele() */ tracevp = p->p_tracep; p->p_tracep = NULL; + mtx_unlock(&ktrace_mtx); PROC_UNLOCK(p); if (tracevp != NULL) vrele(tracevp); |