Re: [PATCH 2/5] fusion: vmware bug fix prevent inifinite retries

James Bottomley
2007-01-06T15:30:51Z

On Thu, 2007-01-04 at 20:46 -0700, Eric Moore wrote:
> - if (scsi_status == MPI_SCSI_STATUS_BUSY)
> + if (ioc->bus_type != SPI && scsi_status == MPI_SCSI_STATUS_BUSY)
> sc->result = (DID_BUS_BUSY << 16) | scsi_status;
> else
> sc->result = (DID_OK << 16) | scsi_status;

DID_BUS_BUSY causes an immediate retry, but it does debit the retry
count, so it shouldn't cause "infinite retries" ... if it does, there's
something else wrong here.

I should also point out that the MPI_SCSI_STATUS_BUSY is
SAM_STAT_BUSY ... this return will cause a queue stop and a requeue, but
it doesn't actually debit the retries, so it *may* cause an infinite
loop if the system is permanently busy.

Finally, whatever's causing this, it should probably be treated the same
for all fusion bus types ...

James