Changeset 76904 in vbox
- Timestamp:
- Jan 20, 2019 7:48:25 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 128272
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Storage/VMDK.cpp
r76553 r76904 539 539 static int vmdkFlushImage(PVMDKIMAGE pImage, PVDIOCTX pIoCtx); 540 540 static int vmdkSetImageComment(PVMDKIMAGE pImage, const char *pszComment); 541 static int vmdkFreeImage(PVMDKIMAGE pImage, bool fDelete );541 static int vmdkFreeImage(PVMDKIMAGE pImage, bool fDelete, bool fFlush); 542 542 543 543 static DECLCALLBACK(int) vmdkAllocGrainComplete(void *pBackendData, PVDIOCTX pIoCtx, … … 3365 3365 } 3366 3366 else 3367 vmdkFreeImage(pImage, false );3367 vmdkFreeImage(pImage, false, false /*fFlush*/); /* Don't try to flush anything if opening failed. */ 3368 3368 return rc; 3369 3369 } … … 4093 4093 } 4094 4094 else 4095 vmdkFreeImage(pImage, rc != VERR_ALREADY_EXISTS );4095 vmdkFreeImage(pImage, rc != VERR_ALREADY_EXISTS, false /*fFlush*/); 4096 4096 return rc; 4097 4097 } … … 4207 4207 * delete the image from disk. 4208 4208 */ 4209 static int vmdkFreeImage(PVMDKIMAGE pImage, bool fDelete )4209 static int vmdkFreeImage(PVMDKIMAGE pImage, bool fDelete, bool fFlush) 4210 4210 { 4211 4211 int rc = VINF_SUCCESS; … … 4317 4317 } 4318 4318 } 4319 else if (!fDelete )4319 else if (!fDelete && fFlush) 4320 4320 vmdkFlushImage(pImage, NULL); 4321 4321 … … 5208 5208 * much as possible in vmdkOpenImage. */ 5209 5209 rc = vmdkOpenImage(pImage, VD_OPEN_FLAGS_INFO | VD_OPEN_FLAGS_READONLY); 5210 vmdkFreeImage(pImage, false );5210 vmdkFreeImage(pImage, false, false /*fFlush*/); 5211 5211 RTMemFree(pImage); 5212 5212 … … 5332 5332 if (uOpenFlags & VD_OPEN_FLAGS_READONLY) 5333 5333 { 5334 vmdkFreeImage(pImage, false );5334 vmdkFreeImage(pImage, false, true /*fFlush*/); 5335 5335 rc = vmdkOpenImage(pImage, uOpenFlags); 5336 5336 } … … 5495 5495 * re-open the whole thing later. 5496 5496 */ 5497 vmdkFreeImage(pImage, false );5497 vmdkFreeImage(pImage, false, true /*fFlush*/); 5498 5498 } 5499 5499 … … 5606 5606 { 5607 5607 /* Release all old stuff. */ 5608 rc = vmdkFreeImage(pImage, false );5608 rc = vmdkFreeImage(pImage, false, true /*fFlush*/); 5609 5609 if (RT_SUCCESS(rc)) 5610 5610 { … … 5679 5679 PVMDKIMAGE pImage = (PVMDKIMAGE)pBackendData; 5680 5680 5681 int rc = vmdkFreeImage(pImage, fDelete );5681 int rc = vmdkFreeImage(pImage, fDelete, true /*fFlush*/); 5682 5682 RTMemFree(pImage); 5683 5683 … … 6150 6150 { 6151 6151 /* Implement this operation via reopening the image. */ 6152 vmdkFreeImage(pImage, false );6152 vmdkFreeImage(pImage, false, true /*fFlush*/); 6153 6153 rc = vmdkOpenImage(pImage, uOpenFlags); 6154 6154 }
Note:
See TracChangeset
for help on using the changeset viewer.