On 10/13/2011 01:03 PM, Paolo Bonzini wrote:
When scsi_handle_rw_error reports a CHECK CONDITION code, the
owner should not call scsi_req_complete.
Signed-off-by: Paolo Bonzini<pbonz...@redhat.com>
---
hw/scsi-disk.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index b041fd5..d4f773f 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -231,6 +231,7 @@ static int scsi_handle_rw_error(SCSIDiskReq *r, int error,
int type)
bdrv_mon_event(s->bs, BDRV_ACTION_STOP, is_read);
vm_stop(RUN_STATE_IO_ERROR);
bdrv_iostatus_set_err(s->bs, error);
+ return 1;
} else {
switch (error) {
case ENOMEDIUM:
@@ -247,8 +248,8 @@ static int scsi_handle_rw_error(SCSIDiskReq *r, int error,
int type)
break;
}
bdrv_mon_event(s->bs, BDRV_ACTION_REPORT, is_read);
+ return 0;
}
- return 1;
}
static void scsi_write_complete(void * opaque, int ret)
Kevin mentioned on IRC that this patch is bogus, and I agreed.
Paolo