[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v5 1/7] qcow2: Assert that cluster operations ar
From: |
Eric Blake |
Subject: |
Re: [Qemu-block] [PATCH v5 1/7] qcow2: Assert that cluster operations are aligned |
Date: |
Mon, 6 Mar 2017 17:34:17 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
On 02/15/2017 06:25 AM, Kevin Wolf wrote:
> Am 14.02.2017 um 20:25 hat Eric Blake geschrieben:
>> qcow2_discard_clusters() is set up to silently ignore sub-cluster
>> head or tail on unaligned requests. However, it is easy to audit
>> the various callers: qcow2_snapshot_create() has always passed
>> aligned data since the call was introduced in 1ebf561;
>> qcow2_co_pdiscard() has passed aligned clusters since commit
>> ecdbead taught the block layer the preferred discard alignment (the
>> block layer can still pass sub-cluster values, but those are
>> handled directly in qcow2_co_pdiscard()); and qcow2_make_empty()
>> was fixed to pass aligned clusters in commit a3e1505.
>
> I don't think this is true for the very part in the image if the image
> size isn't cluster aligned:
>
> ret = qcow2_discard_clusters(bs, start_sector * BDRV_SECTOR_SIZE,
> MIN(sector_step,
> bs->total_sectors - start_sector),
> QCOW2_DISCARD_SNAPSHOT, true);
>
> sector_step is alright after commit a3e1505, but bs->total_sectors can
> be unaligned.
Indeed; a slight tweak to qemu-iotests/097 exposes the problem. I'll
include that in my next spin (although I note that Dan has patches on
the list to split 097 into two tests, in order to give qcow coverage
rather than just qcow2).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-block] [PATCH v5 1/7] qcow2: Assert that cluster operations are aligned,
Eric Blake <=