Changeset 67272 in vbox for trunk/src/VBox/Runtime/common/vfs
- Timestamp:
- Jun 6, 2017 1:42:16 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 115968
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/vfs/vfsbase.cpp
r67221 r67272 42 42 #include <iprt/semaphore.h> 43 43 #include <iprt/thread.h> 44 #include <iprt/zero.h> 44 45 45 46 #include "internal/file.h" … … 3039 3040 3040 3041 int rc; 3041 if (pThis->pOps->pfn Skip)3042 if (pThis->pOps->pfnZeroFill) 3042 3043 { 3043 3044 RTVfsLockAcquireWrite(pThis->Base.hLock); … … 3047 3048 else 3048 3049 { 3049 void *pvBuf = RTMemTmpAllocZ(_64K);3050 if (pvBuf)3050 rc = VINF_SUCCESS; 3051 while (cb > 0) 3051 3052 { 3052 rc = VINF_SUCCESS; 3053 while (cb > 0) 3054 { 3055 size_t cbToWrite = (size_t)RT_MIN(cb, _64K); 3056 RTVfsLockAcquireWrite(pThis->Base.hLock); 3057 rc = RTVfsIoStrmWrite(hVfsIos, pvBuf, cbToWrite, true /*fBlocking*/, NULL); 3058 RTVfsLockReleaseWrite(pThis->Base.hLock); 3059 if (RT_FAILURE(rc)) 3060 break; 3061 cb -= cbToWrite; 3062 } 3063 3064 RTMemTmpFree(pvBuf); 3053 size_t cbToWrite = (size_t)RT_MIN(cb, sizeof(g_abRTZero64K)); 3054 RTVfsLockAcquireWrite(pThis->Base.hLock); 3055 rc = RTVfsIoStrmWrite(hVfsIos, g_abRTZero64K, cbToWrite, true /*fBlocking*/, NULL); 3056 RTVfsLockReleaseWrite(pThis->Base.hLock); 3057 if (RT_FAILURE(rc)) 3058 break; 3059 cb -= cbToWrite; 3065 3060 } 3066 else3067 rc = VERR_NO_TMP_MEMORY;3068 3061 } 3069 3062 return rc;
Note:
See TracChangeset
for help on using the changeset viewer.