summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/geom/geom_kern.c6
-rw-r--r--sys/kern/vfs_mount.c3
2 files changed, 3 insertions, 6 deletions
diff --git a/sys/geom/geom_kern.c b/sys/geom/geom_kern.c
index 29080e9..1308799 100644
--- a/sys/geom/geom_kern.c
+++ b/sys/geom/geom_kern.c
@@ -132,19 +132,13 @@ g_event_procbody(void)
{
struct proc *p = g_event_proc;
struct thread *tp = FIRST_THREAD_IN_PROC(p);
- struct root_hold_token *t;
mtx_assert(&Giant, MA_NOTOWNED);
mtx_lock_spin(&sched_lock);
sched_prio(tp, PRIBIO);
mtx_unlock_spin(&sched_lock);
- t = root_mount_hold("GEOM");
for(;;) {
g_run_events();
- if (t != 0) {
- root_mount_rel(t);
- t = NULL;
- }
tsleep(&g_wait_event, PRIBIO, "-", hz/10);
}
}
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index fbbf484..b0d8234 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -1189,6 +1189,9 @@ vfs_mountroot(void)
struct mount *mp;
root_mount_wait();
+ DROP_GIANT();
+ g_waitidle();
+ PICKUP_GIANT();
mp = devfs_first();
OpenPOWER on IntegriCloud