Date: Wed, 9 Sep 2009 10:52:36 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r197031 - head/sys/kern Message-ID: <200909091052.n89Aqar0083267@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kib Date: Wed Sep 9 10:52:36 2009 New Revision: 197031 URL: http://svn.freebsd.org/changeset/base/197031 Log: Unlock the image vnode around the call of pmc PMC_FN_PROCESS_EXEC hook. The hook calls vn_fullpath(9), that should not be executed with a vnode lock held. Reported by: Bruce Cran <bruce cran org uk> Tested by: pho MFC after: 3 days Modified: head/sys/kern/kern_exec.c Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Wed Sep 9 10:51:50 2009 (r197030) +++ head/sys/kern/kern_exec.c Wed Sep 9 10:52:36 2009 (r197031) @@ -786,10 +786,12 @@ interpret: */ if (PMC_SYSTEM_SAMPLING_ACTIVE() || PMC_PROC_IS_USING_PMCS(p)) { PROC_UNLOCK(p); + VOP_UNLOCK(imgp->vp, 0); pe.pm_credentialschanged = credential_changing; pe.pm_entryaddr = imgp->entry_addr; PMC_CALL_HOOK_X(td, PMC_FN_PROCESS_EXEC, (void *) &pe); + vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY); } else PROC_UNLOCK(p); #else /* !HWPMC_HOOKS */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909091052.n89Aqar0083267>