summaryrefslogtreecommitdiffstats
path: root/sys/geom
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-08-07 08:13:34 +0000
committerkib <kib@FreeBSD.org>2015-08-07 08:13:34 +0000
commit1ca7d277b176166167430e5cfa98257600c109f3 (patch)
treef5780fb1811752b1ad8ff8c857e3e9b360926e53 /sys/geom
parent9d0901679bf40ce3230be4d327b086c72a4075e2 (diff)
downloadFreeBSD-src-1ca7d277b176166167430e5cfa98257600c109f3.zip
FreeBSD-src-1ca7d277b176166167430e5cfa98257600c109f3.tar.gz
The condition to use direct processing for the unmapped bio is
reverted. We can do direct processing when g_io_check() does not need to perform transient remapping of the bio, otherwise the thread has to sleep. Reviewed by: mav (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week
Diffstat (limited to 'sys/geom')
-rw-r--r--sys/geom/geom_io.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/geom/geom_io.c b/sys/geom/geom_io.c
index 0b8e118..97a7eef 100644
--- a/sys/geom/geom_io.c
+++ b/sys/geom/geom_io.c
@@ -520,8 +520,8 @@ g_io_request(struct bio *bp, struct g_consumer *cp)
direct = (cp->flags & G_CF_DIRECT_SEND) &&
(pp->flags & G_PF_DIRECT_RECEIVE) &&
!g_is_geom_thread(curthread) &&
- (((pp->flags & G_PF_ACCEPT_UNMAPPED) == 0 &&
- (bp->bio_flags & BIO_UNMAPPED) != 0) || THREAD_CAN_SLEEP());
+ ((pp->flags & G_PF_ACCEPT_UNMAPPED) != 0 ||
+ (bp->bio_flags & BIO_UNMAPPED) == 0 || THREAD_CAN_SLEEP());
if (direct) {
/* Block direct execution if less then half of stack left. */
size_t st, su;
OpenPOWER on IntegriCloud