[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 19/31] qcow2: Add subcluster support to calculate_l2_meta(
From: |
Alberto Garcia |
Subject: |
Re: [PATCH v5 19/31] qcow2: Add subcluster support to calculate_l2_meta() |
Date: |
Thu, 07 May 2020 17:50:30 +0200 |
User-agent: |
Notmuch/0.18.2 (http://notmuchmail.org) Emacs/24.4.1 (i586-pc-linux-gnu) |
On Thu 07 May 2020 05:34:18 PM CEST, Alberto Garcia wrote:
> On Wed 06 May 2020 07:39:48 PM CEST, Eric Blake wrote:
>> In fact, if we rely on 20/31 checking for invalid subclusters when
>> computing nb_clusters, we could probably assert that the start and end
>> cluster in this function are not invalid, instead of adding the fail:
>> label.
>
> I think you're right with that, good catch! There's no need to return an
> error code in this function.
No, wait, I got confused.
Patch 20/31 updates qcow2_get_host_offset(), and that's used for
reading.
The caller of calculate_l2_meta() is qcow2_alloc_cluster_offset()
(indirectly), which is used for writing.
nb_clusters here is calculated with cluster_needs_new_alloc(), but that
doesn't check whether a cluster is valid or not, and certainly doesn't
check if every single subcluster is valid.
Thinking about it, there are probably faster ways to check for the
validity of extended L2 entries, for example:
- For QCOW2_CLUSTER_NORMAL, (l2_bitmap >> 32) & l2_bitmap should be 0.
- For QCOW2_CLUSTER_UNALLOCATED, l2_bitmap & QCOW_L2_BITMAP_ALL_ALLOC
should be 0.
That's enough to cover all cases of QCOW2_SUBCLUSTER_INVALID that we
have at the moment.
Berto
- [PATCH v5 30/31] qcow2: Add subcluster support to qcow2_measure(), (continued)
[PATCH v5 14/31] qcow2: Add QCow2SubclusterType and qcow2_get_subcluster_type(), Alberto Garcia, 2020/05/05
[PATCH v5 15/31] qcow2: Add qcow2_cluster_is_allocated(), Alberto Garcia, 2020/05/05
[PATCH v5 17/31] qcow2: Replace QCOW2_CLUSTER_* with QCOW2_SUBCLUSTER_*, Alberto Garcia, 2020/05/05
[PATCH v5 31/31] iotests: Add tests for qcow2 images with extended L2 entries, Alberto Garcia, 2020/05/05
[PATCH v5 07/31] qcow2: Document the Extended L2 Entries feature, Alberto Garcia, 2020/05/05