qed.c (72daa72eeecb6b2ee06ab7d836ac3aa01ad7e6df) qed.c (d34682cd4a06efe9ee3fc8cb7e8a0ea445299989)
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>

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

490
491 ret = qed_check(s, &result, true);
492 if (ret) {
493 goto out;
494 }
495 }
496 }
497
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>

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

490
491 ret = qed_check(s, &result, true);
492 if (ret) {
493 goto out;
494 }
495 }
496 }
497
498 bs->bl.write_zeroes_alignment = s->header.cluster_size >> BDRV_SECTOR_BITS;
499 s->need_check_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,
500 qed_need_check_timer_cb, s);
501
502out:
503 if (ret) {
504 qed_free_l2_cache(&s->l2_cache);
505 qemu_vfree(s->l1_table);
506 }
507 return ret;
508}
509
498 s->need_check_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,
499 qed_need_check_timer_cb, s);
500
501out:
502 if (ret) {
503 qed_free_l2_cache(&s->l2_cache);
504 qemu_vfree(s->l1_table);
505 }
506 return ret;
507}
508
509static int bdrv_qed_refresh_limits(BlockDriverState *bs)
510{
511 BDRVQEDState *s = bs->opaque;
512
513 bs->bl.write_zeroes_alignment = s->header.cluster_size >> BDRV_SECTOR_BITS;
514
515 return 0;
516}
517
510/* We have nothing to do for QED reopen, stubs just return
511 * success */
512static int bdrv_qed_reopen_prepare(BDRVReopenState *state,
513 BlockReopenQueue *queue, Error **errp)
514{
515 return 0;
516}
517

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

1611 .bdrv_co_get_block_status = bdrv_qed_co_get_block_status,
1612 .bdrv_make_empty = bdrv_qed_make_empty,
1613 .bdrv_aio_readv = bdrv_qed_aio_readv,
1614 .bdrv_aio_writev = bdrv_qed_aio_writev,
1615 .bdrv_co_write_zeroes = bdrv_qed_co_write_zeroes,
1616 .bdrv_truncate = bdrv_qed_truncate,
1617 .bdrv_getlength = bdrv_qed_getlength,
1618 .bdrv_get_info = bdrv_qed_get_info,
518/* We have nothing to do for QED reopen, stubs just return
519 * success */
520static int bdrv_qed_reopen_prepare(BDRVReopenState *state,
521 BlockReopenQueue *queue, Error **errp)
522{
523 return 0;
524}
525

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

1619 .bdrv_co_get_block_status = bdrv_qed_co_get_block_status,
1620 .bdrv_make_empty = bdrv_qed_make_empty,
1621 .bdrv_aio_readv = bdrv_qed_aio_readv,
1622 .bdrv_aio_writev = bdrv_qed_aio_writev,
1623 .bdrv_co_write_zeroes = bdrv_qed_co_write_zeroes,
1624 .bdrv_truncate = bdrv_qed_truncate,
1625 .bdrv_getlength = bdrv_qed_getlength,
1626 .bdrv_get_info = bdrv_qed_get_info,
1627 .bdrv_refresh_limits = bdrv_qed_refresh_limits,
1619 .bdrv_change_backing_file = bdrv_qed_change_backing_file,
1620 .bdrv_invalidate_cache = bdrv_qed_invalidate_cache,
1621 .bdrv_check = bdrv_qed_check,
1622};
1623
1624static void bdrv_qed_init(void)
1625{
1626 bdrv_register(&bdrv_qed);
1627}
1628
1629block_init(bdrv_qed_init);
1628 .bdrv_change_backing_file = bdrv_qed_change_backing_file,
1629 .bdrv_invalidate_cache = bdrv_qed_invalidate_cache,
1630 .bdrv_check = bdrv_qed_check,
1631};
1632
1633static void bdrv_qed_init(void)
1634{
1635 bdrv_register(&bdrv_qed);
1636}
1637
1638block_init(bdrv_qed_init);