Re: [PATCH] SCSI: handle HARDWARE_ERROR sense correctly

James Bottomley
2008-12-04T21:02:52Z

On Thu, 2008-12-04 at 15:49 -0500, Alan Stern wrote:
> This patch (as1183) fixes a bug in scsi_check_sense(). The routine is
> documented as returning one of SUCCESS, FAILED, or NEEDS_RETRY. But
> in the HARDWARE_ERROR case it can return ADD_TO_MLQUEUE. And since it
> does this without bothering to increment the retry count, it can lead
> to an infinite retry loop.
>
> The fix is to return NEEDS_RETRY instead. Then the caller,
> scsi_decide_disposition(), will do the right thing.

OK, but why?

The current behaviour is to retry the error until the command timeout
expires, which, I think is what was needed by the annoying arrays that
have retryable hardware errors.

What bug would this patch fix? Because I can see it causing problems
with the arrays that originally reported this problem.

James