[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 05/25] scsi-generic: do not use a stale aiocb
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH v5 05/25] scsi-generic: do not use a stale aiocb |
Date: |
Thu, 26 May 2011 12:56:31 +0200 |
If a request is canceled after it has been completed, scsi_cancel_io
would pass a stale aiocb to bdrv_aio_cancel. Avoid this.
Signed-off-by: Paolo Bonzini <address@hidden>
Cc: Christoph Hellwig <address@hidden>
---
hw/scsi-generic.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/hw/scsi-generic.c b/hw/scsi-generic.c
index f09458b..bd09983 100644
--- a/hw/scsi-generic.c
+++ b/hw/scsi-generic.c
@@ -91,6 +91,7 @@ static void scsi_command_complete(void *opaque, int ret)
SCSIGenericReq *r = (SCSIGenericReq *)opaque;
SCSIGenericState *s = DO_UPCAST(SCSIGenericState, qdev, r->req.dev);
+ r->req.aiocb = NULL;
s->driver_status = r->io_header.driver_status;
if (s->driver_status & SG_ERR_DRIVER_SENSE)
s->senselen = r->io_header.sb_len_wr;
@@ -163,6 +164,7 @@ static void scsi_read_complete(void * opaque, int ret)
SCSIGenericReq *r = (SCSIGenericReq *)opaque;
int len;
+ r->req.aiocb = NULL;
if (ret) {
DPRINTF("IO error ret %d\n", ret);
scsi_command_complete(r, ret);
@@ -229,6 +231,7 @@ static void scsi_write_complete(void * opaque, int ret)
SCSIGenericState *s = DO_UPCAST(SCSIGenericState, qdev, r->req.dev);
DPRINTF("scsi_write_complete() ret = %d\n", ret);
+ r->req.aiocb = NULL;
if (ret) {
DPRINTF("IO error\n");
scsi_command_complete(r, ret);
--
1.7.4.4
- [Qemu-devel] [PATCH v5 17/25] scsi: introduce scsi_req_get_buf, (continued)
- [Qemu-devel] [PATCH v5 17/25] scsi: introduce scsi_req_get_buf, Paolo Bonzini, 2011/05/26
- [Qemu-devel] [PATCH v5 08/25] scsi: Use 'SCSIRequest' directly, Paolo Bonzini, 2011/05/26
- [Qemu-devel] [PATCH v5 18/25] scsi: Implement 'get_sense' callback, Paolo Bonzini, 2011/05/26
- [Qemu-devel] [PATCH v5 15/25] scsi: introduce scsi_req_new, Paolo Bonzini, 2011/05/26
- [Qemu-devel] [PATCH v5 19/25] scsi-disk: add data direction checking, Paolo Bonzini, 2011/05/26
- [Qemu-devel] [PATCH v5 21/25] scsi-generic: Handle queue full, Paolo Bonzini, 2011/05/26
- [Qemu-devel] [PATCH v5 22/25] esp: rename sense to status, Paolo Bonzini, 2011/05/26
- [Qemu-devel] [PATCH v5 23/25] scsi: split command_complete callback in two, Paolo Bonzini, 2011/05/26
- [Qemu-devel] [PATCH v5 24/25] scsi: rename arguments to the new callbacks, Paolo Bonzini, 2011/05/26
- [Qemu-devel] [PATCH v5 25/25] scsi: ignore LUN field in the CDB, Paolo Bonzini, 2011/05/26
- [Qemu-devel] [PATCH v5 05/25] scsi-generic: do not use a stale aiocb,
Paolo Bonzini <=
- [Qemu-devel] [PATCH v5 20/25] scsi: make write_data return void, Paolo Bonzini, 2011/05/26
- Re: [Qemu-devel] [PULL v5 00/25] SCSI subsystem improvements, Anthony Liguori, 2011/05/31