Hi!
I was testing VirtualBox and iscsi last few days. We are using
iscsi-scst for performance reasons. VirtualBox was not able to handle
those iscsi disks, always reported VERR_BUFFER_OVERFLOW. Each other
iscsi initiators I tested (vmware, iscsiadm) used that disk without
problems, so I thought, the problem may be in VBox initiator.
I downloaded sources and figured out, that the problem is in static
buffer in VBox initiator. iscsi-scst tries to send sensitive data sized
96 bytes. I don't know, what this data is, but VBox denied our iscsi
disk because of this buffer. I increased static buffer size to 96 bytes
(sense[32] -> sense[96]) in VBox iscsi initiator module, compiled it,
and now it works just perfect.
I'm attaching patchfile against version 3.1.4_OSE
Do you think, it's acceptable for stable releases?
Regards,
Gergely Santa
--- VirtualBox-3.1.4_OSE/src/VBox/Devices/Storage/ISCSIHDDCore.cpp 2010-02-12 20:48:19.000000000 +0100
+++ VirtualBox-3.1.4_OSEp/src/VBox/Devices/Storage/ISCSIHDDCore.cpp 2010-03-08 12:43:38.028032939 +0100
@@ -2471,7 +2471,7 @@
LogFlowFunc(("target '%s' opened successfully\n", pImage->pszTargetName));
SCSIREQ sr;
- uint8_t sense[32];
+ uint8_t sense[96];
uint8_t data8[8];
uint8_t data12[12];
@@ -2935,7 +2935,7 @@
tls = (uint16_t)(cbToRead / pImage->cbSector);
SCSIREQ sr;
uint8_t cdb[10];
- uint8_t sense[32];
+ uint8_t sense[96];
cdb[0] = SCSI_READ_10;
cdb[1] = 0; /* reserved */
@@ -3016,7 +3016,7 @@
tls = (uint16_t)(cbToWrite / pImage->cbSector);
SCSIREQ sr;
uint8_t cdb[10];
- uint8_t sense[32];
+ uint8_t sense[96];
cdb[0] = SCSI_WRITE_10;
cdb[1] = 0; /* reserved */
@@ -3072,7 +3072,7 @@
SCSIREQ sr;
uint8_t cdb[10];
- uint8_t sense[32];
+ uint8_t sense[96];
cdb[0] = SCSI_SYNCHRONIZE_CACHE;
cdb[1] = 0; /* reserved */
_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev