Revision c16b5a2c block/qcow2.c

b/block/qcow2.c
1246 1246
    QCowL2Meta l2meta;
1247 1247
} QCowAIOCB;
1248 1248

  
1249
static void qcow_aio_cancel(BlockDriverAIOCB *blockacb)
1250
{
1251
    QCowAIOCB *acb = (QCowAIOCB *)blockacb;
1252
    if (acb->hd_aiocb)
1253
        bdrv_aio_cancel(acb->hd_aiocb);
1254
    qemu_aio_release(acb);
1255
}
1256

  
1257
static AIOPool qcow_aio_pool = {
1258
    .aiocb_size         = sizeof(QCowAIOCB),
1259
    .cancel             = qcow_aio_cancel,
1260
};
1261

  
1249 1262
static void qcow_aio_read_cb(void *opaque, int ret);
1250 1263
static void qcow_aio_read_bh(void *opaque)
1251 1264
{
......
1375 1388
{
1376 1389
    QCowAIOCB *acb;
1377 1390

  
1378
    acb = qemu_aio_get(bs, cb, opaque);
1391
    acb = qemu_aio_get(&qcow_aio_pool, bs, cb, opaque);
1379 1392
    if (!acb)
1380 1393
        return NULL;
1381 1394
    acb->hd_aiocb = NULL;
......
1498 1511
    return &acb->common;
1499 1512
}
1500 1513

  
1501
static void qcow_aio_cancel(BlockDriverAIOCB *blockacb)
1502
{
1503
    QCowAIOCB *acb = (QCowAIOCB *)blockacb;
1504
    if (acb->hd_aiocb)
1505
        bdrv_aio_cancel(acb->hd_aiocb);
1506
    qemu_aio_release(acb);
1507
}
1508

  
1509 1514
static void qcow_close(BlockDriverState *bs)
1510 1515
{
1511 1516
    BDRVQcowState *s = bs->opaque;
......
2998 3003

  
2999 3004
    .bdrv_aio_readv	= qcow_aio_readv,
3000 3005
    .bdrv_aio_writev	= qcow_aio_writev,
3001
    .bdrv_aio_cancel	= qcow_aio_cancel,
3002
    .aiocb_size		= sizeof(QCowAIOCB),
3003 3006
    .bdrv_write_compressed = qcow_write_compressed,
3004 3007

  
3005 3008
    .bdrv_snapshot_create = qcow_snapshot_create,

Also available in: Unified diff