scsi: pass cdb to alloc_req

This will let scsi-block choose between passthrough and emulation.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Paolo Bonzini 2011-10-12 12:58:31 +02:00 committed by Kevin Wolf
parent 765d1525a6
commit 63db0f0eee
4 changed files with 5 additions and 5 deletions

View File

@ -451,7 +451,7 @@ SCSIRequest *scsi_req_new(SCSIDevice *d, uint32_t tag, uint32_t lun,
req = scsi_req_alloc(&reqops_target_command, d, tag, lun,
hba_private);
} else {
req = d->info->alloc_req(d, tag, lun, hba_private);
req = d->info->alloc_req(d, tag, lun, buf, hba_private);
}
}

View File

@ -1598,8 +1598,8 @@ static const SCSIReqOps scsi_disk_reqops = {
.get_buf = scsi_get_buf,
};
static SCSIRequest *scsi_new_request(SCSIDevice *d, uint32_t tag,
uint32_t lun, void *hba_private)
static SCSIRequest *scsi_new_request(SCSIDevice *d, uint32_t tag, uint32_t lun,
uint8_t *buf, void *hba_private)
{
SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, d);
SCSIRequest *req;

View File

@ -431,7 +431,7 @@ const SCSIReqOps scsi_generic_req_ops = {
};
static SCSIRequest *scsi_new_request(SCSIDevice *d, uint32_t tag, uint32_t lun,
void *hba_private)
uint8_t *buf, void *hba_private)
{
SCSIRequest *req;

View File

@ -94,7 +94,7 @@ struct SCSIDeviceInfo {
scsi_qdev_initfn init;
void (*destroy)(SCSIDevice *s);
SCSIRequest *(*alloc_req)(SCSIDevice *s, uint32_t tag, uint32_t lun,
void *hba_private);
uint8_t *buf, void *hba_private);
void (*unit_attention_reported)(SCSIDevice *s);
};