On 05/16/14 21:02, Elliott, Robert (Server Storage) wrote: > The command is still outstanding; data transfers might still occur, > and a completion using its tag could still appear at any time. > However, the error handler declares that the command is done, > so all the buffers are freed and the tag is reused. > > The SCSI error handler needs to escalate this to a reset that > ensures that the command is no longer outstanding: ABORT > TASK (which already didn't work), ABORT TASK SET, LOGICAL > UNIT RESET, I_T NEXUS RESET, or hard reset. If my interpretation of the SCSI mid-layer source code is correct then even with the patch "improved eh timeout handler" applied the SCSI mid-layer still guarantees for each SCSI host that at most one eh_abort_handler() call is active at any given time (since tmf_work_q is created with max_active = 1) and also that at least one of the eh_* functions is invoked before the SCSI mid-layer finishes a command. Does your comment mean that you have found a scenario in which none of the LLD eh_* callback functions was invoked before the SCSI mid-layer finished a SCSI command ? Thanks, Bart. -- 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