
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@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