VirtualBox

Changeset 39764 in vbox for trunk/src/VBox/Devices/Storage


Ignore:
Timestamp:
Jan 13, 2012 3:18:05 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
75691
Message:

DrvSCSI: Log errors to the release log for the synchronous I/O path too

File:
1 edited

Legend:

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

    r39566 r39764  
    141141        {
    142142            rc = pThis->pDrvBlock->pfnFlush(pThis->pDrvBlock);
     143            if (   RT_FAILURE(rc)
     144                && pThis->cErrors++ < MAX_LOG_REL_ERRORS)
     145                LogRel(("SCSI#%u: Flush returned rc=%Rrc\n",
     146                        pThis->pDrvIns->iInstance, rc));
    143147            break;
    144148        }
     
    190194            }
    191195
     196            if (   RT_FAILURE(rc)
     197                && pThis->cErrors++ < MAX_LOG_REL_ERRORS)
     198                LogRel(("SCSI#%u: %s at offset %llu (%u bytes left) returned rc=%Rrc\n",
     199                        pThis->pDrvIns->iInstance,
     200                        enmTxDir == VSCSIIOREQTXDIR_READ
     201                        ? "Read"
     202                        : "Write",
     203                        uOffset,
     204                        cbTransfer, rc));
     205
    192206            break;
    193207        }
     
    203217            rc = pThis->pDrvBlock->pfnDiscard(pThis->pDrvBlock, paRanges, cRanges);
    204218            pThis->pLed->Actual.s.fWriting = 0;
     219
     220            if (   RT_FAILURE(rc)
     221                && pThis->cErrors++ < MAX_LOG_REL_ERRORS)
     222                LogRel(("SCSI#%u: Unmap returned rc=%Rrc\n",
     223                        pThis->pDrvIns->iInstance, rc));
     224
    205225            break;
    206226        }
     
    247267    {
    248268        pThis->cErrors++;
    249         if (   pThis->cErrors < MAX_LOG_REL_ERRORS
    250             && enmTxDir == VSCSIIOREQTXDIR_FLUSH)
    251             LogRel(("SCSI#%u: Flush returned rc=%Rrc\n",
    252                     pThis->pDrvIns->iInstance, rc));
    253         else
     269        if (pThis->cErrors < MAX_LOG_REL_ERRORS)
    254270        {
    255             uint64_t  uOffset    = 0;
    256             size_t    cbTransfer = 0;
    257             size_t    cbSeg      = 0;
    258             PCRTSGSEG paSeg      = NULL;
    259             unsigned  cSeg       = 0;
    260 
    261             VSCSIIoReqParamsGet(hVScsiIoReq, &uOffset, &cbTransfer,
    262                                 &cSeg, &cbSeg, &paSeg);
    263 
    264             LogRel(("SCSI#%u: %s at offset %llu (%u bytes left) returned rc=%Rrc\n",
    265                     pThis->pDrvIns->iInstance,
    266                     enmTxDir == VSCSIIOREQTXDIR_READ
    267                     ? "Read"
    268                     : "Write",
    269                     uOffset,
    270                     cbTransfer, rc));
     271            if (enmTxDir == VSCSIIOREQTXDIR_FLUSH)
     272                LogRel(("SCSI#%u: Flush returned rc=%Rrc\n",
     273                        pThis->pDrvIns->iInstance, rc));
     274            else if (enmTxDir == VSCSIIOREQTXDIR_UNMAP)
     275                LogRel(("SCSI#%u: Unmap returned rc=%Rrc\n",
     276                        pThis->pDrvIns->iInstance, rc));
     277            else
     278            {
     279                uint64_t  uOffset    = 0;
     280                size_t    cbTransfer = 0;
     281                size_t    cbSeg      = 0;
     282                PCRTSGSEG paSeg      = NULL;
     283                unsigned  cSeg       = 0;
     284
     285                VSCSIIoReqParamsGet(hVScsiIoReq, &uOffset, &cbTransfer,
     286                                    &cSeg, &cbSeg, &paSeg);
     287
     288                LogRel(("SCSI#%u: %s at offset %llu (%u bytes left) returned rc=%Rrc\n",
     289                        pThis->pDrvIns->iInstance,
     290                        enmTxDir == VSCSIIOREQTXDIR_READ
     291                        ? "Read"
     292                        : "Write",
     293                        uOffset,
     294                        cbTransfer, rc));
     295            }
    271296        }
    272297
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