VirtualBox

Ignore:
Timestamp:
Mar 24, 2010 3:45:38 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
59252
Message:

SCSI: Fixes for the async I/O path

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/VSCSI/VSCSIIoReq.cpp

    r27653 r27671  
    4343    pVScsiIoReq->enmTxDir  = VSCSIIOREQTXDIR_FLUSH;
    4444
     45    ASMAtomicIncU32(&pVScsiLun->IoReq.cReqOutstanding);
     46
    4547    rc = vscsiLunReqTransferEnqueue(pVScsiLun, pVScsiIoReq);
    46     if (RT_SUCCESS(rc))
    47         ASMAtomicIncU32(&pVScsiLun->IoReq.cReqOutstanding);
    48     else
     48    if (RT_FAILURE(rc))
     49    {
     50        ASMAtomicDecU32(&pVScsiLun->IoReq.cReqOutstanding);
    4951        RTMemFree(pVScsiIoReq);
     52    }
    5053
    5154    return rc;
     
    7578    pVScsiIoReq->cSeg       = pVScsiReq->IoMemCtx.cSegments;
    7679
     80    ASMAtomicIncU32(&pVScsiLun->IoReq.cReqOutstanding);
     81
    7782    rc = vscsiLunReqTransferEnqueue(pVScsiLun, pVScsiIoReq);
    78     if (RT_SUCCESS(rc))
    79         ASMAtomicIncU32(&pVScsiLun->IoReq.cReqOutstanding);
    80     else
     83    if (RT_FAILURE(rc))
     84    {
     85        ASMAtomicDecU32(&pVScsiLun->IoReq.cReqOutstanding);
    8186        RTMemFree(pVScsiIoReq);
     87    }
    8288
    8389    return rc;
     
    99105
    100106    AssertPtrReturn(pVScsiIoReq, VERR_INVALID_HANDLE);
     107
     108    LogFlowFunc(("hVScsiIoReq=%#p rcIoReq=%Rrc\n", hVScsiIoReq, rcIoReq));
    101109
    102110    pVScsiLun = pVScsiIoReq->pVScsiLun;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette