- Timestamp:
- Jan 17, 2017 9:39:30 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 112933
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DrvVD.cpp
r65346 r65347 2757 2757 RTListForEach(&pThis->aIoReqAllocBins[idxBin].LstIoReqAlloc, pIt, PDMMEDIAEXIOREQINT, NdAllocatedList) 2758 2758 { 2759 if (RT_UNLIKELY(pIt->uIoReqId == pIoReq->uIoReqId)) 2759 if (RT_UNLIKELY( pIt->uIoReqId == pIoReq->uIoReqId 2760 && pIt->enmState != VDIOREQSTATE_CANCELED)) 2760 2761 { 2761 2762 rc = VERR_PDM_MEDIAEX_IOREQID_CONFLICT; … … 3500 3501 static bool drvvdMediaExIoReqCancel(PVBOXDISK pThis, PPDMMEDIAEXIOREQINT pIoReq) 3501 3502 { 3502 bool fXchg = true;3503 bool fXchg = false; 3503 3504 VDIOREQSTATE enmStateOld = (VDIOREQSTATE)ASMAtomicReadU32((volatile uint32_t *)&pIoReq->enmState); 3504 3505 … … 3515 3516 { 3516 3517 fXchg = ASMAtomicCmpXchgU32((volatile uint32_t *)&pIoReq->enmState, VDIOREQSTATE_CANCELED, enmStateOld); 3517 if (!fXchg) 3518 enmStateOld = (VDIOREQSTATE)ASMAtomicReadU32((volatile uint32_t *)&pIoReq->enmState); 3518 if (fXchg) 3519 break; 3520 3521 enmStateOld = (VDIOREQSTATE)ASMAtomicReadU32((volatile uint32_t *)&pIoReq->enmState); 3519 3522 } 3520 3523
Note:
See TracChangeset
for help on using the changeset viewer.