Changeset View
Changeset View
Standalone View
Standalone View
head/sys/geom/geom_slice.c
Show First 20 Lines • Show All 306 Lines • ▼ Show 20 Lines | if (!strcmp("GEOM::kerneldump", bp->bio_attribute)) { | ||||
gkd = (struct g_kerneldump *)bp->bio_data; | gkd = (struct g_kerneldump *)bp->bio_data; | ||||
gkd->offset += gsp->slices[idx].offset; | gkd->offset += gsp->slices[idx].offset; | ||||
if (gkd->length > gsp->slices[idx].length) | if (gkd->length > gsp->slices[idx].length) | ||||
gkd->length = gsp->slices[idx].length; | gkd->length = gsp->slices[idx].length; | ||||
/* now, pass it on downwards... */ | /* now, pass it on downwards... */ | ||||
} | } | ||||
/* FALLTHROUGH */ | /* FALLTHROUGH */ | ||||
case BIO_SPEEDUP: | |||||
case BIO_FLUSH: | case BIO_FLUSH: | ||||
bp2 = g_clone_bio(bp); | bp2 = g_clone_bio(bp); | ||||
if (bp2 == NULL) { | if (bp2 == NULL) { | ||||
g_io_deliver(bp, ENOMEM); | g_io_deliver(bp, ENOMEM); | ||||
return; | return; | ||||
} | } | ||||
bp2->bio_done = g_std_done; | bp2->bio_done = g_std_done; | ||||
g_io_request(bp2, cp); | g_io_request(bp2, cp); | ||||
▲ Show 20 Lines • Show All 240 Lines • Show Last 20 Lines |