diff mbox

[10/16] scsi: add a started field to SCSIDiskReq

Message ID 1334845776-11664-11-git-send-email-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini April 19, 2012, 2:29 p.m. UTC
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/scsi-disk.c |    4 ++++
 1 file changed, 4 insertions(+)
diff mbox

Patch

diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index 09c2715..428d831 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -55,6 +55,7 @@  typedef struct SCSIDiskReq {
     uint64_t sector;
     uint32_t sector_count;
     uint32_t buflen;
+    bool started;
     struct iovec iov;
     QEMUIOVector qiov;
     BlockAcctCookie acct;
@@ -287,6 +288,7 @@  static void scsi_read_data(SCSIRequest *req)
     if (r->sector_count == (uint32_t)-1) {
         DPRINTF("Read buf_len=%zd\n", r->iov.iov_len);
         r->sector_count = 0;
+        r->started = true;
         scsi_req_data(&r->req, r->iov.iov_len);
         return;
     }
@@ -313,6 +315,7 @@  static void scsi_read_data(SCSIRequest *req)
         return;
     }
 
+    r->started = true;
     if (r->req.sg) {
         dma_acct_start(s->qdev.conf.bs, &r->acct, r->req.sg, BDRV_ACCT_READ);
         r->req.resid -= r->req.sg->size;
@@ -425,6 +428,7 @@  static void scsi_write_data(SCSIRequest *req)
 
     if (!r->req.sg && !r->qiov.size) {
         /* Called for the first time.  Ask the driver to send us more data.  */
+        r->started = true;
         scsi_write_complete(r, 0);
         return;
     }