diff options
author | des <des@FreeBSD.org> | 2001-06-10 10:42:01 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2001-06-10 10:42:01 +0000 |
commit | 937629ee8a473f5b89de7be83769d38bbd082320 (patch) | |
tree | e63c94b1539b0bb888c27e05534a0ffdc65059e4 /sys | |
parent | 33f35efc4a89f9212cd34cc3b825998ad02c5c5f (diff) | |
download | FreeBSD-src-937629ee8a473f5b89de7be83769d38bbd082320.zip FreeBSD-src-937629ee8a473f5b89de7be83769d38bbd082320.tar.gz |
Remember to unlock the process pfind() returns.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/fs/pseudofs/pseudofs_vnops.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/fs/pseudofs/pseudofs_vnops.c b/sys/fs/pseudofs/pseudofs_vnops.c index 30995a1..2940385 100644 --- a/sys/fs/pseudofs/pseudofs_vnops.c +++ b/sys/fs/pseudofs/pseudofs_vnops.c @@ -158,16 +158,20 @@ pfs_lookup(struct vop_lookup_args *va) p = pid ? pfind(pid) : &proc0; if (p == NULL) return (ENOENT); - if (p_can(cnp->cn_proc, p, P_CAN_SEE, NULL)) + if (p_can(cnp->cn_proc, p, P_CAN_SEE, NULL)) { /* pretend it doesn't exist */ + PROC_UNLOCK(p); return (ENOENT); + } #if 0 if (!pn->pn_shadow) pfs_create_shadow(pn, p); pn = pn->pn_shadow; + PROC_UNLOCK(p); goto got_pnode; #else /* not yet implemented */ + PROC_UNLOCK(p); return (EIO); #endif } |