qed.c (4359255ad39fdf116f0cf70a77ef5330c217e4da) qed.c (061ca8a368165fae300748c17971824a089f521f)
1/*
2 * QEMU Enhanced Disk Format
3 *
4 * Copyright IBM, Corp. 2010
5 *
6 * Authors:
7 * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
8 * Anthony Liguori <aliguori@us.ibm.com>

--- 1453 unchanged lines hidden (view full) ---

1462 iov.iov_len = bytes;
1463
1464 qemu_iovec_init_external(&qiov, &iov, 1);
1465 return qed_co_request(bs, offset >> BDRV_SECTOR_BITS, &qiov,
1466 bytes >> BDRV_SECTOR_BITS,
1467 QED_AIOCB_WRITE | QED_AIOCB_ZERO);
1468}
1469
1/*
2 * QEMU Enhanced Disk Format
3 *
4 * Copyright IBM, Corp. 2010
5 *
6 * Authors:
7 * Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
8 * Anthony Liguori <aliguori@us.ibm.com>

--- 1453 unchanged lines hidden (view full) ---

1462 iov.iov_len = bytes;
1463
1464 qemu_iovec_init_external(&qiov, &iov, 1);
1465 return qed_co_request(bs, offset >> BDRV_SECTOR_BITS, &qiov,
1466 bytes >> BDRV_SECTOR_BITS,
1467 QED_AIOCB_WRITE | QED_AIOCB_ZERO);
1468}
1469
1470static int bdrv_qed_truncate(BlockDriverState *bs, int64_t offset,
1471 PreallocMode prealloc, Error **errp)
1470static int coroutine_fn bdrv_qed_co_truncate(BlockDriverState *bs,
1471 int64_t offset,
1472 PreallocMode prealloc,
1473 Error **errp)
1472{
1473 BDRVQEDState *s = bs->opaque;
1474 uint64_t old_image_size;
1475 int ret;
1476
1477 if (prealloc != PREALLOC_MODE_OFF) {
1478 error_setg(errp, "Unsupported preallocation mode '%s'",
1479 PreallocMode_str(prealloc));

--- 193 unchanged lines hidden (view full) ---

1673 .bdrv_child_perm = bdrv_format_default_perms,
1674 .bdrv_co_create = bdrv_qed_co_create,
1675 .bdrv_co_create_opts = bdrv_qed_co_create_opts,
1676 .bdrv_has_zero_init = bdrv_has_zero_init_1,
1677 .bdrv_co_block_status = bdrv_qed_co_block_status,
1678 .bdrv_co_readv = bdrv_qed_co_readv,
1679 .bdrv_co_writev = bdrv_qed_co_writev,
1680 .bdrv_co_pwrite_zeroes = bdrv_qed_co_pwrite_zeroes,
1474{
1475 BDRVQEDState *s = bs->opaque;
1476 uint64_t old_image_size;
1477 int ret;
1478
1479 if (prealloc != PREALLOC_MODE_OFF) {
1480 error_setg(errp, "Unsupported preallocation mode '%s'",
1481 PreallocMode_str(prealloc));

--- 193 unchanged lines hidden (view full) ---

1675 .bdrv_child_perm = bdrv_format_default_perms,
1676 .bdrv_co_create = bdrv_qed_co_create,
1677 .bdrv_co_create_opts = bdrv_qed_co_create_opts,
1678 .bdrv_has_zero_init = bdrv_has_zero_init_1,
1679 .bdrv_co_block_status = bdrv_qed_co_block_status,
1680 .bdrv_co_readv = bdrv_qed_co_readv,
1681 .bdrv_co_writev = bdrv_qed_co_writev,
1682 .bdrv_co_pwrite_zeroes = bdrv_qed_co_pwrite_zeroes,
1681 .bdrv_truncate = bdrv_qed_truncate,
1683 .bdrv_co_truncate = bdrv_qed_co_truncate,
1682 .bdrv_getlength = bdrv_qed_getlength,
1683 .bdrv_get_info = bdrv_qed_get_info,
1684 .bdrv_refresh_limits = bdrv_qed_refresh_limits,
1685 .bdrv_change_backing_file = bdrv_qed_change_backing_file,
1686 .bdrv_co_invalidate_cache = bdrv_qed_co_invalidate_cache,
1687 .bdrv_co_check = bdrv_qed_co_check,
1688 .bdrv_detach_aio_context = bdrv_qed_detach_aio_context,
1689 .bdrv_attach_aio_context = bdrv_qed_attach_aio_context,
1690 .bdrv_co_drain_begin = bdrv_qed_co_drain_begin,
1691};
1692
1693static void bdrv_qed_init(void)
1694{
1695 bdrv_register(&bdrv_qed);
1696}
1697
1698block_init(bdrv_qed_init);
1684 .bdrv_getlength = bdrv_qed_getlength,
1685 .bdrv_get_info = bdrv_qed_get_info,
1686 .bdrv_refresh_limits = bdrv_qed_refresh_limits,
1687 .bdrv_change_backing_file = bdrv_qed_change_backing_file,
1688 .bdrv_co_invalidate_cache = bdrv_qed_co_invalidate_cache,
1689 .bdrv_co_check = bdrv_qed_co_check,
1690 .bdrv_detach_aio_context = bdrv_qed_detach_aio_context,
1691 .bdrv_attach_aio_context = bdrv_qed_attach_aio_context,
1692 .bdrv_co_drain_begin = bdrv_qed_co_drain_begin,
1693};
1694
1695static void bdrv_qed_init(void)
1696{
1697 bdrv_register(&bdrv_qed);
1698}
1699
1700block_init(bdrv_qed_init);