[libvirt] [PATCH] storage: Do not override the exact error of createRawFile

Osier Yang jyang at redhat.com
Mon Jul 4 08:14:06 UTC 2011


于 2011年07月04日 16:08, Matthias Bolte 写道:
> 2011/7/4 Osier Yang<jyang at redhat.com>:
>> virStorageBackendCreateRaw: createRawFile already reported the
>> exact error.
>>
>> Before the fix:
>>
>> error: Failed to create vol vol-create.img
>> error: cannot create path '/var/lib/libvirt/images/vol-create.img': Unknown error 18446744073709551597
>>
>> After the fix:
>>
>> error: Failed to create vol vol-create.img
>> error: cannot fill file '/var/lib/libvirt/images/vol-create.img': No space left on device
>> ---
>>   src/storage/storage_backend.c |    7 ++-----
>>   1 files changed, 2 insertions(+), 5 deletions(-)
>>
>> diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
>> index a6e66e1..708d7b2 100644
>> --- a/src/storage/storage_backend.c
>> +++ b/src/storage/storage_backend.c
>> @@ -399,12 +399,9 @@ virStorageBackendCreateRaw(virConnectPtr conn ATTRIBUTE_UNUSED,
>>          goto cleanup;
>>      }
>>
>> -    if ((ret = createRawFile(fd, vol, inputvol))<  0) {
>> -        virReportSystemError(-fd,
>> -                             _("cannot create path '%s'"),
>> -                             vol->target.path);
>> +    if ((ret = createRawFile(fd, vol, inputvol))<  0)
>> +        /* createRawFile already reported the exact error. */
>>          ret = -1;
>> -    }
>
> You're also fixing the usage of the wrong value for the errno
> parameter of virReportSystemError by removing that call. It should
> have been -ret instead of -fd, that's why you see this large number in
> the overwriting error that is the result of an overflow.
>
> ACK.
>

Thanks, applied

Osier




More information about the libvir-list mailing list