Changeset 47420 in vbox
- Timestamp:
- Jul 26, 2013 11:16:35 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Storage/VD.cpp
r47026 r47420 2771 2771 rc = pImage->Backend->pfnFlush(pImage->pBackendData, pIoCtx); 2772 2772 if ( ( RT_SUCCESS(rc) 2773 || rc == VERR_VD_ASYNC_IO_IN_PROGRESS) 2773 || rc == VERR_VD_ASYNC_IO_IN_PROGRESS 2774 || rc == VERR_VD_IOCTX_HALT) 2774 2775 && pDisk->pCache) 2775 2776 { 2776 2777 rc = pDisk->pCache->Backend->pfnFlush(pDisk->pCache->pBackendData, pIoCtx); 2777 2778 if ( RT_SUCCESS(rc) 2778 || rc != VERR_VD_ASYNC_IO_IN_PROGRESS) 2779 || ( rc != VERR_VD_ASYNC_IO_IN_PROGRESS 2780 && rc != VERR_VD_IOCTX_HALT)) 2779 2781 vdIoCtxUnlockDisk(pDisk, pIoCtx, true /* fProcessBlockedReqs */); 2780 else 2782 else if (rc != VERR_VD_IOCTX_HALT) 2781 2783 rc = VINF_SUCCESS; 2782 2784 } 2783 2785 else if (rc == VERR_VD_ASYNC_IO_IN_PROGRESS) 2784 2786 rc = VINF_SUCCESS; 2785 else /* Some other error. */2787 else if (rc != VERR_VD_IOCTX_HALT)/* Some other error. */ 2786 2788 vdIoCtxUnlockDisk(pDisk, pIoCtx, true /* fProcessBlockedReqs */); 2787 2789 } … … 4621 4623 PVBOXHDD pDisk = pVDIo->pDisk; 4622 4624 4625 LogFlowFunc(("pvUser=%#p pIoCtx=%#p rcReq=%Rrc cbCompleted=%zu\n", 4626 pvUser, pIoCtx, rcReq, cbCompleted)); 4627 4623 4628 /* 4624 4629 * Grab the disk critical section to avoid races with other threads which … … 4630 4635 * the request would hang indefinite. 4631 4636 */ 4632 pIoCtx->rcReq = rcReq;4637 ASMAtomicCmpXchgS32(&pIoCtx->rcReq, rcReq, VINF_SUCCESS); 4633 4638 ASMAtomicSubU32(&pIoCtx->Req.Io.cbTransferLeft, cbCompleted); 4634 4639
Note:
See TracChangeset
for help on using the changeset viewer.