[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC V2 18/20] qcow2: Add method to destroy the deduplicati
From: |
Benoît Canet |
Subject: |
[Qemu-devel] [RFC V2 18/20] qcow2: Add method to destroy the deduplication red black tree. |
Date: |
Wed, 17 Oct 2012 18:00:27 +0200 |
---
block/qcow2-dedup.c | 16 ++++++++++++++++
block/qcow2.h | 1 +
2 files changed, 17 insertions(+)
diff --git a/block/qcow2-dedup.c b/block/qcow2-dedup.c
index 72fab64..60e93fe 100644
--- a/block/qcow2-dedup.c
+++ b/block/qcow2-dedup.c
@@ -680,6 +680,22 @@ void coroutine_fn qcow2_co_load_dedup_hashes(void *opaque)
}
/*
+ * This function walk in the red black tree remove the elements and free them.
+ */
+void qcow2_dedup_destroy_rb_tree(BlockDriverState *bs)
+{
+ BDRVQcowState *s = bs->opaque;
+
+ while (!RB_EMPTY_ROOT(&s->dedup_rb_tree)) {
+ QCowHashNode *data =
+ rb_entry(s->dedup_rb_tree.rb_node, QCowHashNode, node);
+ rb_erase(&data->node, &s->dedup_rb_tree);
+ g_free(data->hash);
+ g_free(data);
+ }
+}
+
+/*
* Save the dedup table information into the header extensions
*
* @table_offset: the dedup table offset in the QCOW2 file
diff --git a/block/qcow2.h b/block/qcow2.h
index 0b999fb..1d629a7 100644
--- a/block/qcow2.h
+++ b/block/qcow2.h
@@ -390,6 +390,7 @@ int qcow2_dedup_write_new_hashes(BlockDriverState *bs,
int count);
void coroutine_fn qcow2_co_load_dedup_hashes(void *opaque);
void qcow2_dedup_start_loading_hashes(BlockDriverState *bs);
+void qcow2_dedup_destroy_rb_tree(BlockDriverState *bs);
int qcow2_dedup_grow_table(BlockDriverState *bs,
int min_size,
bool exact_size);
--
1.7.10.4
- [Qemu-devel] [RFC V2 04/20] qcow2: Add qcow2_de dup_read_missing_and_concatenate, (continued)
- [Qemu-devel] [RFC V2 04/20] qcow2: Add qcow2_de dup_read_missing_and_concatenate, Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 15/20] block: Add dedup image create option., Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 01/20] qcow2: Add deduplication to the qcow2 specification., Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 17/20] qcow2: Integrate deduplication in qcow2_co_writev loop., Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 16/20] qcow2: Allow creation of images using deduplication., Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 10/20] qcow2: Add qcow2_dedup_grow_table., Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 12/20] qcow2: Extract qcow2_do_table_init., Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 20/20] qemu-iotests: Filter dedup=on/off so existing tests don't break., Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 13/20] qcow2: Add qcow2_dedup_init and qcow2_dedup_close., Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 18/20] qcow2: Add method to destroy the deduplication red black tree.,
Benoît Canet <=
- [Qemu-devel] [RFC V2 19/20] qcow2: init and cleanup deduplication., Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 02/20] qcow2: Add kernel red black trees, Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 11/20] qcow2: Load and save deduplication table header extension., Benoît Canet, 2012/10/17
- [Qemu-devel] [RFC V2 14/20] qcow2: Extract qcow2_add_feature and qcow2_remove_feature., Benoît Canet, 2012/10/17
- Re: [Qemu-devel] [RFC V2 00/20] QCOW2 deduplication, Avi Kivity, 2012/10/17