[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v9 02/34] qcow2: Convert qcow2_get_cluster_offset() into qcow
From: |
Max Reitz |
Subject: |
Re: [PATCH v9 02/34] qcow2: Convert qcow2_get_cluster_offset() into qcow2_get_host_offset() |
Date: |
Tue, 30 Jun 2020 12:19:42 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 |
On 28.06.20 13:02, Alberto Garcia wrote:
> qcow2_get_cluster_offset() takes an (unaligned) guest offset and
> returns the (aligned) offset of the corresponding cluster in the qcow2
> image.
>
> In practice none of the callers need to know where the cluster starts
> so this patch makes the function calculate and return the final host
> offset directly. The function is also renamed accordingly.
>
> There is a pre-existing exception with compressed clusters: in this
> case the function returns the complete cluster descriptor (containing
> the offset and size of the compressed data). This does not change with
> this patch but it is now documented.
>
> Signed-off-by: Alberto Garcia <berto@igalia.com>
> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
> block/qcow2.h | 4 ++--
> block/qcow2-cluster.c | 42 +++++++++++++++++++++++-------------------
> block/qcow2.c | 24 +++++++-----------------
> 3 files changed, 32 insertions(+), 38 deletions(-)
[...]
> diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
> index 4b5fc8c4a7..9ab41cb728 100644
> --- a/block/qcow2-cluster.c
> +++ b/block/qcow2-cluster.c
[...]
> @@ -537,8 +542,6 @@ int qcow2_get_cluster_offset(BlockDriverState *bs,
> uint64_t offset,
> bytes_needed = bytes_available;
> }
>
> - *cluster_offset = 0;
> -
You drop this line without replacement now. That means that
*host_offset is no longer set to 0 if the L1 entry is out of bounds or
empty (which causes this function to return QCOW2_CLUSTER_UNALLOCATED
and no error). Was that intentional?
Max
signature.asc
Description: OpenPGP digital signature
- [PATCH v9 00/34] Add subcluster allocation to qcow2, Alberto Garcia, 2020/06/28
- [PATCH v9 10/34] qcow2: Add offset_to_sc_index(), Alberto Garcia, 2020/06/28
- [PATCH v9 07/34] qcow2: Document the Extended L2 Entries feature, Alberto Garcia, 2020/06/28
- [PATCH v9 08/34] qcow2: Add dummy has_subclusters() function, Alberto Garcia, 2020/06/28
- [PATCH v9 26/34] qcow2: Clear the L2 bitmap when allocating a compressed cluster, Alberto Garcia, 2020/06/28
- [PATCH v9 03/34] qcow2: Add calculate_l2_meta(), Alberto Garcia, 2020/06/28
- [PATCH v9 06/34] qcow2: Add get_l2_entry() and set_l2_entry(), Alberto Garcia, 2020/06/28
- [PATCH v9 02/34] qcow2: Convert qcow2_get_cluster_offset() into qcow2_get_host_offset(), Alberto Garcia, 2020/06/28
- Re: [PATCH v9 02/34] qcow2: Convert qcow2_get_cluster_offset() into qcow2_get_host_offset(),
Max Reitz <=
- [PATCH v9 05/34] qcow2: Process QCOW2_CLUSTER_ZERO_ALLOC clusters in handle_copied(), Alberto Garcia, 2020/06/28
- [PATCH v9 04/34] qcow2: Split cluster_needs_cow() out of count_cow_clusters(), Alberto Garcia, 2020/06/28
- [PATCH v9 13/34] qcow2: Update get/set_l2_entry() and add get/set_l2_bitmap(), Alberto Garcia, 2020/06/28
- [PATCH v9 24/34] qcow2: Add subcluster support to check_refcounts_l2(), Alberto Garcia, 2020/06/28
- [PATCH v9 19/34] qcow2: Handle QCOW2_SUBCLUSTER_UNALLOCATED_ALLOC, Alberto Garcia, 2020/06/28
- [PATCH v9 09/34] qcow2: Add subcluster-related fields to BDRVQcow2State, Alberto Garcia, 2020/06/28
- [PATCH v9 16/34] qcow2: Add qcow2_cluster_is_allocated(), Alberto Garcia, 2020/06/28
- [PATCH v9 11/34] qcow2: Add offset_into_subcluster() and size_to_subclusters(), Alberto Garcia, 2020/06/28