
On Wed, Oct 14, 2015 at 09:35:24 -0400, John Ferlan wrote:
On 10/14/2015 08:16 AM, Peter Krempa wrote:
On Tue, Oct 13, 2015 at 16:12:46 -0400, John Ferlan wrote:
...
Erm, you've patched virFileOpenAs a few patches before this to do the right thing when creating the file so I don't see a reason to make sure again.
I know that, look closer at the code after the call to virFileOpenAs. We know that if virOpenFileAs succeeds then we've created the file (if it didn't exist prior to calling virOpenFileAs); however, if the following fails:
if ((ret = createRawFile(fd, vol, inputvol, reflink_copy)) < 0) /* createRawFile already reported the exact error. */ ret = -1;
we would have left the function creating the file, but not deleting it because some subsequent action failed.
I agree that virStorageBackendCreateRaw needs to delete the file in some cases. I just don't think that checking if the file exists prior to the call to virOpenFileAs is necessary or makes sense in any way. Peter