summaryrefslogtreecommitdiff
path: root/sys/geom/geom_subr.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/geom/geom_subr.c')
-rw-r--r--sys/geom/geom_subr.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/geom/geom_subr.c b/sys/geom/geom_subr.c
index eba0a0244ce2..f08d049db7c4 100644
--- a/sys/geom/geom_subr.c
+++ b/sys/geom/geom_subr.c
@@ -1134,8 +1134,11 @@ g_std_done(struct bio *bp)
bp2->bio_completed += bp->bio_completed;
g_destroy_bio(bp);
bp2->bio_inbed++;
- if (bp2->bio_children == bp2->bio_inbed)
+ if (bp2->bio_children == bp2->bio_inbed) {
+ if (bp2->bio_cmd == BIO_SPEEDUP)
+ bp2->bio_completed = bp2->bio_length;
g_io_deliver(bp2, bp2->bio_error);
+ }
}
/* XXX: maybe this is only g_slice_spoiled */