diff options
Diffstat (limited to 'hw')
| -rw-r--r-- | hw/block/xen_disk.c | 7 | ||||
| -rw-r--r-- | hw/ide/core.c | 6 | ||||
| -rw-r--r-- | hw/scsi/scsi-disk.c | 8 |
3 files changed, 12 insertions, 9 deletions
diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c index 90aca73121..3b8ad33fc5 100644 --- a/hw/block/xen_disk.c +++ b/hw/block/xen_disk.c @@ -574,9 +574,10 @@ static int ioreq_runio_qemu_aio(struct ioreq *ioreq) { struct blkif_request_discard *discard_req = (void *)&ioreq->req; ioreq->aio_inflight++; - blk_aio_discard(blkdev->blk, - discard_req->sector_number, discard_req->nr_sectors, - qemu_aio_complete, ioreq); + blk_aio_pdiscard(blkdev->blk, + discard_req->sector_number << BDRV_SECTOR_BITS, + discard_req->nr_sectors << BDRV_SECTOR_BITS, + qemu_aio_complete, ioreq); break; } default: diff --git a/hw/ide/core.c b/hw/ide/core.c index b1daf967d6..081c9eb765 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -423,8 +423,10 @@ static void ide_issue_trim_cb(void *opaque, int ret) } /* Got an entry! Submit and exit. */ - iocb->aiocb = blk_aio_discard(iocb->blk, sector, count, - ide_issue_trim_cb, opaque); + iocb->aiocb = blk_aio_pdiscard(iocb->blk, + sector << BDRV_SECTOR_BITS, + count << BDRV_SECTOR_BITS, + ide_issue_trim_cb, opaque); return; } diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index 8dbfc10b78..836a1553ed 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -1609,10 +1609,10 @@ static void scsi_unmap_complete_noio(UnmapCBData *data, int ret) goto done; } - r->req.aiocb = blk_aio_discard(s->qdev.conf.blk, - sector_num * (s->qdev.blocksize / 512), - nb_sectors * (s->qdev.blocksize / 512), - scsi_unmap_complete, data); + r->req.aiocb = blk_aio_pdiscard(s->qdev.conf.blk, + sector_num * s->qdev.blocksize, + nb_sectors * s->qdev.blocksize, + scsi_unmap_complete, data); data->count--; data->inbuf += 16; return; |