[haiku-commits] Change in haiku[master]: virtio_scsi: Abort requests on timeout.

  • From: Gerrit <review@xxxxxxxxxxxxxxxxxxx>
  • To: waddlesplash <waddlesplash@xxxxxxxxx>, haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 1 Sep 2019 21:55:39 +0000

From Michael Lotz <mmlr@xxxxxxxx>:

Michael Lotz has uploaded this change for review. ( 
https://review.haiku-os.org/c/haiku/+/1815 ;)


Change subject: virtio_scsi: Abort requests on timeout.
......................................................................

virtio_scsi: Abort requests on timeout.

Previously the CCB would never complete when a timeout occured, leading
to all further IO stopping.

Abort the request by setting the CCB status to aborted and handing the
CCB back to the SCSI layer. That one will then handle the error (and
possibly retrying). This is similar to how such errors are handled in
AHCI and the ATA stack.

Since it is now possible that we receive a completion interrupt for an
already aborted request, we need to keep track of what request the
interrupts belong to and only notify when the current one completes. As
there currently can't be multiple requests in flight, a simple counter
is used.
---
M src/add-ons/kernel/busses/scsi/virtio/VirtioSCSIController.cpp
M src/add-ons/kernel/busses/scsi/virtio/VirtioSCSIPrivate.h
M src/add-ons/kernel/busses/scsi/virtio/VirtioSCSIRequest.cpp
3 files changed, 24 insertions(+), 8 deletions(-)



  git pull ssh://git.haiku-os.org:22/haiku refs/changes/15/1815/1
--
To view, visit https://review.haiku-os.org/c/haiku/+/1815
To unsubscribe, or for help writing mail filters, visit 
https://review.haiku-os.org/settings

Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: Ib80e146605efd2f81123803f424cc7f66f52a6c8
Gerrit-Change-Number: 1815
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Lotz <mmlr@xxxxxxxx>
Gerrit-MessageType: newchange

Other related posts:

  • » [haiku-commits] Change in haiku[master]: virtio_scsi: Abort requests on timeout. - Gerrit