fusion : VMWare guest OS remounted as read only fix
Subsystems (2)
PATCH 2/2 fusion : VMWare guest OS remounted as read only fix
This address the issue of VMWare guest OS being remounted as read-only becuase the underlying device was held busy too long, , and at the same time address Engenio MPP driver concerns over infinite retries. This patch removes the code that snoops the SAM STATUS on busy, which would be returning DID_BUS_BUSY, instead we return the status as is. Retry hanlding seems to be properly handled in scsi_softirq_done, where a busy sam status would only occurr for the time specified by (cmd->allowed +1) * cmd->timeout_per_command.
drivers/message/fusion/mptscsih.c +1 -4
@@ -819,10 +819,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_F sc->resid=0 ;case MPI_IOCSTATUS_SCSI_RECOVERED_ERROR :/* 0x0040 */ case MPI_IOCSTATUS_SUCCESS :/* 0x0000 */ -if (scsi_status ==MPI_SCSI_STATUS_BUSY ) - sc->result = (DID_BUS_BUSY <<16 ) | scsi_status; -else - sc->result = (DID_OK <<16 ) | scsi_status; + sc->result = (DID_OK <<16 ) | scsi_status;if (scsi_state ==0 ) { ; }else if (scsi_state &MPI_SCSI_STATE_AUTOSENSE_VALID ) {
Quoted 1 line · Eric Moore
This address the issue of VMWare guest OS being remounted as read-only becuase the underlying device was held busy too long, , and at the same time address Engenio MPP driver concerns over infinite retries. This patch removes the code that snoops the SAM STATUS on busy, which would be returning
DID_BUS_BUSY, instead we return the status as is. Retry hanlding seems to be properly handled inscsi_softirq_done, where a busy sam status would only occurr for the time specified by (cmd->allowed+1) *cmd->timeout_per_command.
Looks good to me.