[libvirt] [PATCH 3/3] Fix probing of QED file format

Peter Krempa pkrempa at redhat.com
Thu Dec 13 14:55:28 UTC 2012


On 12/13/12 15:51, Daniel P. Berrange wrote:
> On Thu, Dec 13, 2012 at 03:49:00PM +0100, Peter Krempa wrote:
>> On 12/13/12 15:26, Daniel P. Berrange wrote:
>>> From: "Daniel P. Berrange" <berrange at redhat.com>
>>>
>>> The QED file format is non-versioned, so although the magic
>>> value matched, libvirt rejected it due to lack of a version
>>> number to compare against. We need to distinguish this case
>>> by allowing a value of '-2' to indicate a non-versioned file
>>> where only the magic is required to match
>>>
>>> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
>>> ---
>>>   src/util/storage_file.c | 10 ++++++++--
>>>   1 file changed, 8 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/src/util/storage_file.c b/src/util/storage_file.c
>>> index 69a66ff..c0bb977 100644
>>> --- a/src/util/storage_file.c
>>> +++ b/src/util/storage_file.c
>>> @@ -174,8 +174,8 @@ static struct FileTypeInfo const fileTypeInfo[] = {
>>>       },
>>>       [VIR_STORAGE_FILE_QED] = {
>>>           /* http://wiki.qemu.org/Features/QED */
>>> -        "QED\0", NULL,
>>> -        LV_LITTLE_ENDIAN, -1, -1,
>>> +        "QED", NULL,
>>> +        LV_LITTLE_ENDIAN, -2, -1,
>>>           QED_HDR_IMAGE_SIZE, 8, 1, -1, qedGetBackingStore,
>>>       },
>>>       [VIR_STORAGE_FILE_VMDK] = {
>>> @@ -612,6 +612,12 @@ virStorageFileMatchesVersion(int format,
>>>       if (fileTypeInfo[format].versionOffset == -1)
>>>           return false;
>>>
>>> +    /* -2 == non-versioned file format, so trivially match */
>>> +    if (fileTypeInfo[format].versionOffset == -2) {
>>> +        VIR_WARN("Non-versioned file matches");
>>
>> Are you sure you want to log this as a warning? Since we know that
>> this file is unversioned do we need to spam the user's log with
>> that?
>
> Doh, I meant to remove that debug line
>
> Daniel
>

Ah, great. ACK when you do that.

Peter




More information about the libvir-list mailing list