Revision 87b245db hw/virtio-blk.c
b/hw/virtio-blk.c | ||
---|---|---|
254 | 254 |
|
255 | 255 |
static void virtio_blk_handle_write(VirtIOBlockReq *req) |
256 | 256 |
{ |
257 |
bdrv_aio_writev(req->dev->bs, req->out->sector, &req->qiov, |
|
258 |
req->qiov.size / 512, virtio_blk_rw_complete, req); |
|
257 |
BlockDriverAIOCB *acb; |
|
258 |
|
|
259 |
acb = bdrv_aio_writev(req->dev->bs, req->out->sector, &req->qiov, |
|
260 |
req->qiov.size / 512, virtio_blk_rw_complete, req); |
|
261 |
if (!acb) { |
|
262 |
virtio_blk_req_complete(req, VIRTIO_BLK_S_IOERR); |
|
263 |
} |
|
259 | 264 |
} |
260 | 265 |
|
261 | 266 |
static void virtio_blk_handle_read(VirtIOBlockReq *req) |
262 | 267 |
{ |
263 |
bdrv_aio_readv(req->dev->bs, req->out->sector, &req->qiov, |
|
264 |
req->qiov.size / 512, virtio_blk_rw_complete, req); |
|
268 |
BlockDriverAIOCB *acb; |
|
269 |
|
|
270 |
acb = bdrv_aio_readv(req->dev->bs, req->out->sector, &req->qiov, |
|
271 |
req->qiov.size / 512, virtio_blk_rw_complete, req); |
|
272 |
if (!acb) { |
|
273 |
virtio_blk_req_complete(req, VIRTIO_BLK_S_IOERR); |
|
274 |
} |
|
265 | 275 |
} |
266 | 276 |
|
267 | 277 |
static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) |
Also available in: Unified diff