[libvirt] [PATCH 09/12] storage: Cleanup failures in virStorageBackendCreateRaw

John Ferlan jferlan at redhat.com
Tue Oct 13 20:12:46 UTC 2015



On 10/13/2015 08:43 AM, Peter Krempa wrote:
> On Fri, Oct 09, 2015 at 09:34:08 -0400, John Ferlan wrote:
>> If the volume target path doesn't exist prior to calling virFileOpenAs and
>> we have a successful call, then we know we've had a successful creation.
>> For any other failures in the function we should clean up after ourselves
>> by using virFileDelete if we're about to return failure.
>>
>> Signed-off-by: John Ferlan <jferlan at redhat.com>
>> ---
>>  src/storage/storage_backend.c | 10 ++++++++++
>>  1 file changed, 10 insertions(+)
>>
>> diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
>> index 7d0de63..32f85ac 100644
>> --- a/src/storage/storage_backend.c
>> +++ b/src/storage/storage_backend.c
> 
> ...
> 
>> @@ -520,6 +522,8 @@ virStorageBackendCreateRaw(virConnectPtr conn ATTRIBUTE_UNUSED,
>>      if (vol->target.perms->mode != (mode_t) -1)
>>          open_mode = vol->target.perms->mode;
>>  
>> +    if (virFileExists(vol->target.path))
>> +        exists = true;
> 
> Why even bother checking? Shouldn't this function fail right away if the
> target file exists?
> 

Paranoia. Which function? I assume you mean *CreateRaw. Nothing in the
function checks for existence. And while there isn't a caller currently
that wouldn't be creating, I just wanted to be sure and perhaps future
proof.

I have no qualms in removing if that's felt is what is right.

John




More information about the libvir-list mailing list