[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 20/24] qcow2: add get_conversion_options()
From: |
Devin Nakamura |
Subject: |
[Qemu-devel] [RFC 20/24] qcow2: add get_conversion_options() |
Date: |
Fri, 29 Jul 2011 00:49:50 -0400 |
Signed-off-by: Devin Nakamura <address@hidden>
---
block/qcow2.c | 24 +++++++++++++++++++++---
1 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/block/qcow2.c b/block/qcow2.c
index 3bb28d2..86df65d 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -1427,6 +1427,23 @@ static int qcow2_copy_header(BlockDriverState *bs)
return qcow2_drop_leaked_clusters(bs);
}
+static int qcow2_get_conversion_options(BlockDriverState *bs,
+ BlockConversionOptions *options)
+{
+ BDRVQcowState *s = bs->opaque;
+
+ options->image_size = bs->total_sectors * BDRV_SECTOR_SIZE;
+ options->cluster_size = s->cluster_sectors * BDRV_SECTOR_SIZE;
+ options->allocation_size = s->cluster_sectors * BDRV_SECTOR_SIZE;
+ if (s->crypt_method == QCOW_CRYPT_NONE) {
+ options->encryption_type = BLOCK_CRYPT_NONE;
+ } else if (s->crypt_method == QCOW_CRYPT_AES) {
+ options->encryption_type = BLOCK_CRYPT_AES;
+ } else {
+ return -1; //TODO: FIXME
+ }
+ return 0;
+}
static QEMUOptionParameter qcow2_create_options[] = {
{
.name = BLOCK_OPT_SIZE,
@@ -1497,9 +1514,10 @@ static BlockDriver bdrv_qcow2 = {
.create_options = qcow2_create_options,
.bdrv_check = qcow2_check,
- .bdrv_get_mapping = qcow2_get_mapping,
- .bdrv_map = qcow2_map,
- .bdrv_copy_header = qcow2_copy_header,
+ .bdrv_get_mapping = qcow2_get_mapping,
+ .bdrv_map = qcow2_map,
+ .bdrv_copy_header = qcow2_copy_header,
+ .bdrv_get_conversion_options = qcow2_get_conversion_options,
};
static void bdrv_qcow2_init(void)
--
1.7.6.rc1
- [Qemu-devel] [RFC 15/24] qcow2: split up the creation of new refcount table from the act of checking it, (continued)
- [Qemu-devel] [RFC 15/24] qcow2: split up the creation of new refcount table from the act of checking it, Devin Nakamura, 2011/07/29
- [Qemu-devel] [RFC 14/24] qcow2: fix typo in documentation for qcow2_get_cluster_offset(), Devin Nakamura, 2011/07/29
- [Qemu-devel] [RFC 16/24] qcow2: add qcow2_drop_leaked_clusters(), Devin Nakamura, 2011/07/29
- [Qemu-devel] [RFC 17/24] qcow2: add qcow2_get_mapping, Devin Nakamura, 2011/07/29
- [Qemu-devel] [RFC 18/24] qcow2: add qcow2_map, Devin Nakamura, 2011/07/29
- [Qemu-devel] [RFC 19/24] qcow2: add qcow2_copy_header(), Devin Nakamura, 2011/07/29
- [Qemu-devel] [RFC 21/24] qcow2: add qcow2_open_conversion_target(), Devin Nakamura, 2011/07/29
- [Qemu-devel] [RFC 23/24] qemu-io: add setmap command, Devin Nakamura, 2011/07/29
- [Qemu-devel] [RFC 24/24] qemu-img: add inplace conversion to qemu-img, Devin Nakamura, 2011/07/29
- [Qemu-devel] [RFC 22/24] qemu-io: make map command use new block mapping function, Devin Nakamura, 2011/07/29
- [Qemu-devel] [RFC 20/24] qcow2: add get_conversion_options(),
Devin Nakamura <=