Page MenuHomeFreeBSD

D60156.id188144.diff
No OneTemporary

D60156.id188144.diff

diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c
--- a/sys/cam/scsi/scsi_da.c
+++ b/sys/cam/scsi/scsi_da.c
@@ -4798,6 +4798,18 @@
TAILQ_INIT(&queue);
TAILQ_CONCAT(&queue, &softc->delete_run_queue.queue, bio_queue);
softc->delete_run_queue.insert_point = NULL;
+ /*
+ * Update the stats for each of the bios.
+ */
+ TAILQ_FOREACH(bp1, &queue, bio_queue) {
+ bp1->bio_error = bp->bio_error;
+ if (bp->bio_flags & BIO_ERROR) {
+ bp1->bio_flags |= BIO_ERROR;
+ bp1->bio_resid = bp1->bio_bcount;
+ } else
+ bp1->bio_resid = 0;
+ cam_iosched_bio_complete(softc->cam_iosched, bp1, NULL);
+ }
/*
* Normally, the xpt_release_ccb() above would make sure
* that when we have more work to do, that work would
@@ -4813,12 +4825,6 @@
cam_periph_unlock(periph);
while ((bp1 = TAILQ_FIRST(&queue)) != NULL) {
TAILQ_REMOVE(&queue, bp1, bio_queue);
- bp1->bio_error = bp->bio_error;
- if (bp->bio_flags & BIO_ERROR) {
- bp1->bio_flags |= BIO_ERROR;
- bp1->bio_resid = bp1->bio_bcount;
- } else
- bp1->bio_resid = 0;
biodone(bp1);
}
} else {

File Metadata

Mime Type
text/plain
Expires
Fri, Oct 2, 1:03 AM (14 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39977466
Default Alt Text
D60156.id188144.diff (1 KB)

Event Timeline