On 06/10/2013 02:12 AM, Baruch Even wrote: > On Thu, Jun 6, 2013 at 12:43 PM, Hannes Reinecke <hare@xxxxxxx> wrote: >> When a command runs into a timeout we need to send an 'ABORT TASK' >> TMF. This is typically done by the 'eh_abort_handler' LLDD callback. >> >> Conceptually, however, this function is a normal SCSI command, so >> there is no need to enter the error handler. >> >> This patch implements a new scsi_abort_command() function which >> invokes an asynchronous function scsi_eh_abort_handler() to >> abort the commands via 'eh_abort_handler'. >> >> If the 'eh_abort_handler' returns SUCCESS or FAST_IO_FAIL the >> command will be retried if possible. If no retries are allowed >> the command will be returned immediately, as we have to assume >> the TMF succeeded and the command is completed with the LLDD. >> For any other return code from 'eh_abort_handler' the command >> will be pushed onto the existing SCSI EH handler, or aborted >> with DID_TIME_OUT if that fails. >> > > Why would you do a retry at this low level? We already have a bad path, > the IO may already be rerouted through another path and continuing with this > IO here may interfere with the multipath handling. > For multipathing no retries would be set, so the command would be returned immediately. I checked. Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage hare@xxxxxxx +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg) -- 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