summaryrefslogtreecommitdiffstats
path: root/sys/geom
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2015-09-16 04:38:07 +0000
committerimp <imp@FreeBSD.org>2015-09-16 04:38:07 +0000
commit617221c5399ac65c352ca5a9b09c99fac9fa41f8 (patch)
treea863b6c9230ae1452ee9651435c29e6808b90410 /sys/geom
parent6b2dbe45194d69ff67dc5072e7ba1f4685adcafe (diff)
downloadFreeBSD-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.c2
-rw-r--r--sys/geom/multipath/g_multipath.c4
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);
OpenPOWER on IntegriCloud