summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2009-01-09 22:06:48 +0000
committermarcus <marcus@FreeBSD.org>2009-01-09 22:06:48 +0000
commit267597236c3d1064f06022037e138d01ab734f8c (patch)
tree5bca76d035af9567d600d2c7493ce3568c78add8
parentffd24214075016efd0b3aac50a2a5127600c3a77 (diff)
downloadFreeBSD-src-267597236c3d1064f06022037e138d01ab734f8c.zip
FreeBSD-src-267597236c3d1064f06022037e138d01ab734f8c.tar.gz
Fix a deadlock which can occur due to a pseudofs vnode not getting unlocked.
Reported by: Richard Todd <rmtodd@ichotolot.servalan.com> Reviewed by: kib Approved by: kib
-rw-r--r--sys/fs/pseudofs/pseudofs_vncache.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/fs/pseudofs/pseudofs_vncache.c b/sys/fs/pseudofs/pseudofs_vncache.c
index 0bacc03..551ae6a 100644
--- a/sys/fs/pseudofs/pseudofs_vncache.c
+++ b/sys/fs/pseudofs/pseudofs_vncache.c
@@ -212,6 +212,7 @@ retry2:
if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, curthread) == 0) {
++pfs_vncache_hits;
vgone(*vpp);
+ vput(*vpp);
*vpp = vp;
cache_purge(vp);
return (0);
OpenPOWER on IntegriCloud