[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v3 28/39] qcow2: Read refcount before L2 table in ex
From: |
Alberto Garcia |
Subject: |
[Qemu-block] [PATCH v3 28/39] qcow2: Read refcount before L2 table in expand_zero_clusters_in_l1() |
Date: |
Fri, 26 Jan 2018 16:59:55 +0200 |
At the moment it doesn't really make a difference whether we call
qcow2_get_refcount() before of after reading the L2 table, but if we
want to support L2 slices we'll need to read the refcount first.
This patch simply changes the order of those two operations to prepare
for that. The patch with the actual semantic changes will be easier to
read because of this.
Signed-off-by: Alberto Garcia <address@hidden>
---
block/qcow2-cluster.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
index e13f8f2f14..1338485184 100644
--- a/block/qcow2-cluster.c
+++ b/block/qcow2-cluster.c
@@ -1899,6 +1899,12 @@ static int expand_zero_clusters_in_l1(BlockDriverState
*bs, uint64_t *l1_table,
goto fail;
}
+ ret = qcow2_get_refcount(bs, l2_offset >> s->cluster_bits,
+ &l2_refcount);
+ if (ret < 0) {
+ goto fail;
+ }
+
if (is_active_l1) {
/* get active L2 tables from cache */
ret = qcow2_cache_get(bs, s->l2_table_cache, l2_offset,
@@ -1912,12 +1918,6 @@ static int expand_zero_clusters_in_l1(BlockDriverState
*bs, uint64_t *l1_table,
goto fail;
}
- ret = qcow2_get_refcount(bs, l2_offset >> s->cluster_bits,
- &l2_refcount);
- if (ret < 0) {
- goto fail;
- }
-
for (j = 0; j < s->l2_size; j++) {
uint64_t l2_entry = be64_to_cpu(l2_table[j]);
int64_t offset = l2_entry & L2E_OFFSET_MASK;
--
2.11.0
- [Qemu-block] [PATCH v3 01/39] qcow2: Fix documentation of get_cluster_table(), (continued)
- [Qemu-block] [PATCH v3 01/39] qcow2: Fix documentation of get_cluster_table(), Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 34/39] qcow2: Rename l2_table in count_contiguous_clusters_unallocated(), Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 17/39] qcow2: Update l2_allocate() to support L2 slices, Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 20/39] qcow2: Update qcow2_get_cluster_offset() to support L2 slices, Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 32/39] qcow2: Rename l2_table in qcow2_alloc_compressed_cluster_offset(), Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 06/39] qcow2: Remove BDS parameter from qcow2_cache_entry_mark_dirty(), Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 35/39] qcow2: Rename l2_table in count_cow_clusters(), Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 28/39] qcow2: Read refcount before L2 table in expand_zero_clusters_in_l1(),
Alberto Garcia <=
- [Qemu-block] [PATCH v3 38/39] iotests: Test downgrading an image using a small L2 slice size, Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 31/39] qcow2: Update qcow2_truncate() to support L2 slices, Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 10/39] qcow2: Remove BDS parameter from qcow2_cache_discard(), Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 08/39] qcow2: Remove BDS parameter from qcow2_cache_destroy(), Alberto Garcia, 2018/01/26
- [Qemu-block] [PATCH v3 13/39] qcow2: Add l2_slice_size field to BDRVQcow2State, Alberto Garcia, 2018/01/26