Changeset 29213 in vbox
- Timestamp:
- May 7, 2010 1:56:43 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DrvSCSI.cpp
r29049 r29213 33 33 34 34 #include "Builtins.h" 35 36 /** The maximum number of release log entries per device. */ 37 #define MAX_LOG_REL_ERRORS 1024 35 38 36 39 /** … … 98 101 /** Release statistics: Current I/O depth. */ 99 102 volatile uint32_t StatIoDepth; 103 /** Errors printed in the release log. */ 104 unsigned cErrors; 100 105 } DRVSCSI, *PDRVSCSI; 101 106 … … 231 236 { 232 237 rc = pThis->pDrvBlockAsync->pfnStartFlush(pThis->pDrvBlockAsync, hVScsiIoReq); 233 if (RT_FAILURE(rc) && rc != VERR_VD_ASYNC_IO_IN_PROGRESS) 234 AssertMsgFailed(("%s: Failed to flush data %Rrc\n", __FUNCTION__, rc)); 238 if ( RT_FAILURE(rc) 239 && rc != VERR_VD_ASYNC_IO_IN_PROGRESS 240 && pThis->cErrors++ < MAX_LOG_REL_ERRORS) 241 LogRel(("SCSI#%u: Flush returned rc=%Rrc\n", 242 pThis->pDrvIns->iInstance, rc)); 235 243 break; 236 244 } … … 254 262 paSeg, cSeg, cbTransfer, 255 263 hVScsiIoReq); 256 if (RT_FAILURE(rc) && rc != VERR_VD_ASYNC_IO_IN_PROGRESS)257 AssertMsgFailed(("%s: Failed to read data %Rrc\n", __FUNCTION__, rc));258 264 STAM_REL_COUNTER_ADD(&pThis->StatBytesRead, cbTransfer); 259 265 } … … 264 270 paSeg, cSeg, cbTransfer, 265 271 hVScsiIoReq); 266 if (RT_FAILURE(rc) && rc != VERR_VD_ASYNC_IO_IN_PROGRESS)267 AssertMsgFailed(("%s: Failed to write data %Rrc\n", __FUNCTION__, rc));268 272 STAM_REL_COUNTER_ADD(&pThis->StatBytesWritten, cbTransfer); 269 273 } 270 274 275 if ( RT_FAILURE(rc) 276 && rc != VERR_VD_ASYNC_IO_IN_PROGRESS 277 && pThis->cErrors++ < MAX_LOG_REL_ERRORS) 278 LogRel(("SCSI#%u: %s at offset %llu (%u bytes left) returned rc=%Rrc\n", 279 pThis->pDrvIns->iInstance, 280 enmTxDir == VSCSIIOREQTXDIR_READ 281 ? "Read" 282 : "Write", 283 uOffset, 284 cbTransfer, rc)); 271 285 break; 272 286 } … … 300 314 ASMAtomicDecU32(&pThis->StatIoDepth); 301 315 VSCSIIoReqCompleted(hVScsiIoReq, rc); 316 rc = VINF_SUCCESS; 302 317 } 303 318 else
Note:
See TracChangeset
for help on using the changeset viewer.