Changeset 63740 in vbox
- Timestamp:
- Sep 6, 2016 2:20:14 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 110522
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DrvVD.cpp
r63723 r63740 3046 3046 3047 3047 if (pIoReq->enmType == PDMMEDIAEXIOREQTYPE_READ) 3048 rc = VDAsyncRead(pThis->pDisk, pIoReq->ReadWrite.offStart, cbReqIo, &pIoReq->ReadWrite.IoBuf.SgBuf, 3049 drvvdMediaExIoReqComplete, pThis, pIoReq); 3048 { 3049 if (pThis->fAsyncIOSupported) 3050 rc = VDAsyncRead(pThis->pDisk, pIoReq->ReadWrite.offStart, cbReqIo, &pIoReq->ReadWrite.IoBuf.SgBuf, 3051 drvvdMediaExIoReqComplete, pThis, pIoReq); 3052 else 3053 { 3054 void *pvBuf = RTSgBufGetNextSegment(&pIoReq->ReadWrite.IoBuf.SgBuf, &cbReqIo); 3055 3056 Assert(cbReqIo > 0 && VALID_PTR(pvBuf)); 3057 rc = VDRead(pThis->pDisk, pIoReq->ReadWrite.offStart, pvBuf, cbReqIo); 3058 if (RT_SUCCESS(rc)) 3059 rc = VINF_VD_ASYNC_IO_FINISHED; 3060 } 3061 } 3050 3062 else 3051 3063 { … … 3054 3066 if (RT_SUCCESS(rc)) 3055 3067 { 3056 rc = VDAsyncWrite(pThis->pDisk, pIoReq->ReadWrite.offStart, cbReqIo, 3057 &pIoReq->ReadWrite.IoBuf.SgBuf, 3058 drvvdMediaExIoReqComplete, pThis, pIoReq); 3068 if (pThis->fAsyncIOSupported) 3069 rc = VDAsyncWrite(pThis->pDisk, pIoReq->ReadWrite.offStart, cbReqIo, 3070 &pIoReq->ReadWrite.IoBuf.SgBuf, 3071 drvvdMediaExIoReqComplete, pThis, pIoReq); 3072 else 3073 { 3074 void *pvBuf = RTSgBufGetNextSegment(&pIoReq->ReadWrite.IoBuf.SgBuf, &cbReqIo); 3075 3076 Assert(cbReqIo > 0 && VALID_PTR(pvBuf)); 3077 rc = VDWrite(pThis->pDisk, pIoReq->ReadWrite.offStart, pvBuf, cbReqIo); 3078 if (RT_SUCCESS(rc)) 3079 rc = VINF_VD_ASYNC_IO_FINISHED; 3080 } 3059 3081 } 3060 3082 } … … 3453 3475 3454 3476 ASMAtomicIncU32(&pThis->cIoReqsActive); 3455 int rc = VDAsyncFlush(pThis->pDisk, drvvdMediaExIoReqComplete, pThis, pIoReq); 3477 int rc = VINF_SUCCESS; 3478 if (pThis->fAsyncIOSupported) 3479 rc = VDAsyncFlush(pThis->pDisk, drvvdMediaExIoReqComplete, pThis, pIoReq); 3480 else 3481 rc = VDFlush(pThis->pDisk); 3482 3456 3483 if (rc == VERR_VD_ASYNC_IO_IN_PROGRESS) 3457 3484 rc = VINF_PDM_MEDIAEX_IOREQ_IN_PROGRESS;
Note:
See TracChangeset
for help on using the changeset viewer.