diff options
author | imp <imp@FreeBSD.org> | 2015-09-16 04:38:07 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2015-09-16 04:38:07 +0000 |
commit | 617221c5399ac65c352ca5a9b09c99fac9fa41f8 (patch) | |
tree | a863b6c9230ae1452ee9651435c29e6808b90410 /sys/geom | |
parent | 6b2dbe45194d69ff67dc5072e7ba1f4685adcafe (diff) | |
download | FreeBSD-src-617221c5399ac65c352ca5a9b09c99fac9fa41f8.zip FreeBSD-src-617221c5399ac65c352ca5a9b09c99fac9fa41f8.tar.gz |
MFC 281310, 287567:
r287567 | imp | 2015-09-08 11:47:56 -0600 (Tue, 08 Sep 2015) | 16 lines
Mark the swap pager as direct dispatch compatible.
r281310 | mav | 2015-04-09 07:09:05 -0600 (Thu, 09 Apr 2015) | 4 lines
Remove sleeps from geom_up thread on device destruction.
Diffstat (limited to 'sys/geom')
-rw-r--r-- | sys/geom/geom_dev.c | 2 | ||||
-rw-r--r-- | sys/geom/multipath/g_multipath.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c index b53065d..621a037 100644 --- a/sys/geom/geom_dev.c +++ b/sys/geom/geom_dev.c @@ -570,7 +570,7 @@ g_dev_done(struct bio *bp2) } mtx_unlock(&sc->sc_mtx); if (destroy) - g_post_event(g_dev_destroy, cp, M_WAITOK, NULL); + g_post_event(g_dev_destroy, cp, M_NOWAIT, NULL); biodone(bp); } diff --git a/sys/geom/multipath/g_multipath.c b/sys/geom/multipath/g_multipath.c index 7593cca..0953d18 100644 --- a/sys/geom/multipath/g_multipath.c +++ b/sys/geom/multipath/g_multipath.c @@ -369,9 +369,9 @@ g_multipath_done(struct bio *bp) mtx_lock(&sc->sc_mtx); (*cnt)--; if (*cnt == 0 && (cp->index & MP_LOST)) { - cp->index |= MP_POSTED; + if (g_post_event(g_mpd, cp, M_NOWAIT, NULL) == 0) + cp->index |= MP_POSTED; mtx_unlock(&sc->sc_mtx); - g_post_event(g_mpd, cp, M_WAITOK, NULL); } else mtx_unlock(&sc->sc_mtx); g_std_done(bp); |