aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorBrian Feldman <green@FreeBSD.org>2004-03-14 15:57:45 +0000
committerBrian Feldman <green@FreeBSD.org>2004-03-14 15:57:45 +0000
commit6fedf947751526ee3a82cea9148b0488274c9ee6 (patch)
tree7475a244fdc1242ce72ad9a053734abbab36c37a /sys
parentbcfe6d8b26de2a5eaa8d67796a557891603b887e (diff)
downloadsrc-6fedf947751526ee3a82cea9148b0488274c9ee6.tar.gz
src-6fedf947751526ee3a82cea9148b0488274c9ee6.zip
When taking event callbacks (like process_exit) out from under Giant, those
which do not lock Giant themselves will be exposed. Unbreak pfs_exit().
Notes
Notes: svn path=/head/; revision=126975
Diffstat (limited to 'sys')
-rw-r--r--sys/fs/pseudofs/pseudofs_vncache.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/fs/pseudofs/pseudofs_vncache.c b/sys/fs/pseudofs/pseudofs_vncache.c
index 31b60e19e9cb..49258ab963fa 100644
--- a/sys/fs/pseudofs/pseudofs_vncache.c
+++ b/sys/fs/pseudofs/pseudofs_vncache.c
@@ -222,6 +222,7 @@ pfs_exit(void *arg, struct proc *p)
{
struct pfs_vdata *pvd, *prev;
+ mtx_lock(&Giant);
mtx_lock(&pfs_vncache_mutex);
/*
* The double loop is necessary because vgone() indirectly
@@ -239,6 +240,7 @@ pfs_exit(void *arg, struct proc *p)
break;
}
mtx_unlock(&pfs_vncache_mutex);
+ mtx_unlock(&Giant);
}
/*