On 11/17/2010 10:10 AM, James Bottomley wrote:
-static int scsi_try_to_abort_cmd(struct scsi_cmnd *scmd) -{ - /* - * scsi_done was called just after the command timed out and before - * we had a chance to process it. (db) - */ - if (scmd->serial_number == 0) - return SUCCESS; - return __scsi_try_to_abort_cmd(scmd); -}
Does it matter that with this patch we now call the driver's abort handler when the command has been added to the eh list when going through scsi_softirq_done-> scsi_decide_disposition returns FAILED -> scsi_eh_scmd_add?
It looks like most drivers will not send an abort, because they check something like the scsi_cmnd SCp pointer for their internal info and when it is not there they assume the command completed and just return (do some return FAILED and some return SUCCESS through). I did not check all drivers.
It seems like this is a really rare case that we get FAILED from scsi_decide_disposition so I thought it might not matter.
-- 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