Page MenuHomeFreeBSD

D36665.id.diff
No OneTemporary

D36665.id.diff

diff --git a/sys/dev/virtio/block/virtio_blk.c b/sys/dev/virtio/block/virtio_blk.c
--- a/sys/dev/virtio/block/virtio_blk.c
+++ b/sys/dev/virtio/block/virtio_blk.c
@@ -62,6 +62,7 @@
struct virtio_blk_outhdr vbr_hdr;
struct bio *vbr_bp;
uint8_t vbr_ack;
+ uint8_t vbr_requeue_on_error;
int vbr_error;
TAILQ_ENTRY(vtblk_request) vbr_link;
};
@@ -1008,6 +1009,8 @@
sc->vtblk_req_ordered = req;
out:
+ if (error && req->vbr_requeue_on_error)
+ vtblk_request_requeue_ready(sc, req);
req->vbr_error = error;
}
@@ -1133,11 +1136,10 @@
if (req == NULL)
break;
+ req->vbr_requeue_on_error = 1;
vtblk_request_execute(sc, req);
- if (req->vbr_error != 0) {
- vtblk_request_requeue_ready(sc, req);
+ if (req->vbr_error != 0)
break;
- }
enq++;
}

File Metadata

Mime Type
text/plain
Expires
Tue, Oct 1, 1:42 PM (2 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
13216507
Default Alt Text
D36665.id.diff (801 B)

Event Timeline