Fix spurious I/O errors when under high load.

Submitted by: Erich Chen
This commit is contained in:
Scott Long 2007-02-15 15:36:15 +00:00
parent c72132f05f
commit f48f00a13a
2 changed files with 6 additions and 2 deletions

View File

@ -52,6 +52,9 @@
** with scsi pass-through command
** add new device id of sas raid adapters
** code fit for SPARC64 & PPC
** 1.20.00.14 02/05/2007 Erich Chen bug fix for incorrect ccb_h.status report
** and cause g_vfs_done() read write error
******************************************************************************************
* $FreeBSD$
*/
@ -1299,7 +1302,8 @@ static void arcmsr_executesrb(void *arg, bus_dma_segment_t *dm_segs, int nseg, i
}
pccb->ccb_h.status |= CAM_SIM_QUEUED;
if(acb->srboutstandingcount >= ARCMSR_MAX_OUTSTANDING_CMD) {
pccb->ccb_h.status |= CAM_SCSI_BUSY;
pccb->ccb_h.status &= ~CAM_STATUS_MASK;
pccb->ccb_h.status |= CAM_REQUEUE_REQ;
arcmsr_srb_complete(srb, 0);
return;
}

View File

@ -37,7 +37,7 @@
**************************************************************************
* $FreeBSD$
*/
#define ARCMSR_DRIVER_VERSION "Driver Version 1.20.00.13 2006-8-18"
#define ARCMSR_DRIVER_VERSION "Driver Version 1.20.00.14 2007-2-05"
#define ARCMSR_SCSI_INITIATOR_ID 255
#define ARCMSR_DEV_SECTOR_SIZE 512
#define ARCMSR_MAX_XFER_SECTORS 4096