Re: [PATCH 1/3] SCSI: rearrange code in scsi_io_completion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2008-09-29 at 17:11 -0400, Alan Stern wrote:
> This patch (as1142) consolidates some repetitious code in
> scsi_io_completion().  Multiple calls to scsi_end_request() and to
> scsi_requeue_command() are combined together and moved to the end of
> the function.
> 
> This is simple mechanical code motion, with no change in behavior.

I don't really think this is the right approach, since the retry case
needs to be split apart again.

The only time scsi_requeue_command() needs to be called is if the
request completes successfully but has leftovers.  The reason is that
the command will be different next time around, so it has to be
re-prepared.  In all the other cases, the same command can be reused.
This will have the knock on effect of not resetting the timers or the
counters, so it has to be done carefully.

Of the three requeue cases:

UNIT_ATTENTION needs immediate retry
NOT_READY needs delayed retry
ILLEGAL_REQUEST with cmd switch (assuming we still do it) needs
immediate retry
DID_RESET is arguable either way, but probably needs delayed.

immediate requeue is done by:

scsi_queue_insert(cmd, SCSI_MLQUEUE_EH_RETRY);

And delayed by

scsi_queue_insert(cmd, SCSI_MLQUEUE_DEVICE_BUSY);

James


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux