diff options
author | phk <phk@FreeBSD.org> | 2005-09-11 12:35:32 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2005-09-11 12:35:32 +0000 |
commit | fd5205fdd9f8bc2a8c658b053cd6adfcebe21968 (patch) | |
tree | e9044713805213642cb55da301a37469854bfd79 /sys/dev/md | |
parent | ae191726d9a460464edd8207299d0ae5705fbb6d (diff) | |
download | FreeBSD-src-fd5205fdd9f8bc2a8c658b053cd6adfcebe21968.zip FreeBSD-src-fd5205fdd9f8bc2a8c658b053cd6adfcebe21968.tar.gz |
Do not destroy the queue mutex until the thread is done with it.
Diffstat (limited to 'sys/dev/md')
-rw-r--r-- | sys/dev/md/md.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c index cb21e4d..230f93b 100644 --- a/sys/dev/md/md.c +++ b/sys/dev/md/md.c @@ -944,7 +944,6 @@ mddestroy(struct md_s *sc, struct thread *td) GIANT_REQUIRED; - mtx_destroy(&sc->queue_mtx); if (sc->gp) { sc->gp->softc = NULL; g_waitfor_event(md_zapit, sc->gp, M_WAITOK, sc->gp, NULL); @@ -955,6 +954,7 @@ mddestroy(struct md_s *sc, struct thread *td) wakeup(sc); while (sc->procp != NULL) tsleep(&sc->procp, PRIBIO, "mddestroy", hz / 10); + mtx_destroy(&sc->queue_mtx); if (sc->vnode != NULL) (void)vn_close(sc->vnode, sc->flags & MD_READONLY ? FREAD : (FREAD|FWRITE), sc->cred, td); |