diff options
author | marcus <marcus@FreeBSD.org> | 2009-01-09 22:06:48 +0000 |
---|---|---|
committer | marcus <marcus@FreeBSD.org> | 2009-01-09 22:06:48 +0000 |
commit | 267597236c3d1064f06022037e138d01ab734f8c (patch) | |
tree | 5bca76d035af9567d600d2c7493ce3568c78add8 /sys/fs/pseudofs/pseudofs_vncache.c | |
parent | ffd24214075016efd0b3aac50a2a5127600c3a77 (diff) | |
download | FreeBSD-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
Diffstat (limited to 'sys/fs/pseudofs/pseudofs_vncache.c')
-rw-r--r-- | sys/fs/pseudofs/pseudofs_vncache.c | 1 |
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); |