summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2001-06-10 10:42:01 +0000
committerdes <des@FreeBSD.org>2001-06-10 10:42:01 +0000
commit937629ee8a473f5b89de7be83769d38bbd082320 (patch)
treee63c94b1539b0bb888c27e05534a0ffdc65059e4 /sys/fs
parent33f35efc4a89f9212cd34cc3b825998ad02c5c5f (diff)
downloadFreeBSD-src-937629ee8a473f5b89de7be83769d38bbd082320.zip
FreeBSD-src-937629ee8a473f5b89de7be83769d38bbd082320.tar.gz
Remember to unlock the process pfind() returns.
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/pseudofs/pseudofs_vnops.c6
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
}
OpenPOWER on IntegriCloud