diff options
-rw-r--r-- | sys/geom/geom_kern.c | 6 | ||||
-rw-r--r-- | sys/kern/vfs_mount.c | 3 |
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(); |