--- src/sys/vfs/procfs/procfs_subr.c 2007/05/06 19:23:35 1.17 +++ src/sys/vfs/procfs/procfs_subr.c 2007/08/25 23:27:02 1.18 @@ -279,6 +279,7 @@ procfs_rw(struct vop_read_args *ap) return (EACCES); /* XXX lwp */ lp = FIRST_LWP_IN_PROC(p); + LWPHOLD(lp); while (pfs->pfs_lockowner) { tsleep(&pfs->pfs_lockowner, 0, "pfslck", 0); @@ -335,6 +336,7 @@ procfs_rw(struct vop_read_args *ap) rtval = EOPNOTSUPP; break; } + LWPRELE(lp); pfs->pfs_lockowner = 0; wakeup(&pfs->pfs_lockowner); return rtval;