VirtualBox

Ignore:
Timestamp:
Dec 9, 2011 1:27:31 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
75320
Message:

SCSI: Add support for readonly disks

File:
1 edited

Legend:

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

    r38878 r39566  
    260260            aReply[3] = 0; /* Block descriptor length. */
    261261
     262            if (pVScsiLun->fFeatures & VSCSI_LUN_FEATURE_READONLY)
     263                aReply[2] |= RT_BIT(7); /* Set write protect bit */
     264
    262265            pu8ReplyPos = aReply + 4;
    263266
     
    509512        {
    510513            /* Enqueue new I/O request */
    511             rc = vscsiIoReqTransferEnqueue(pVScsiLun, pVScsiReq, enmTxDir,
    512                                            uLbaStart * 512, cSectorTransfer * 512);
     514            if (   (   enmTxDir == VSCSIIOREQTXDIR_WRITE
     515                    || enmTxDir == VSCSIIOREQTXDIR_FLUSH)
     516                && (pVScsiLun->fFeatures & VSCSI_LUN_FEATURE_READONLY))
     517                rcReq = vscsiLunReqSenseErrorSet(pVScsiLun, pVScsiReq, SCSI_SENSE_DATA_PROTECT, SCSI_ASC_WRITE_PROTECTED, 0x00);
     518            else
     519                rc = vscsiIoReqTransferEnqueue(pVScsiLun, pVScsiReq, enmTxDir,
     520                                               uLbaStart * 512, cSectorTransfer * 512);
    513521        }
    514522    }
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