-
James Bottomley authored
The object of this infrastructure is to give HBAs early warning that error handling is about to happen and also provide them with the opportunity to do something about it. It introduces the extra template callback: eh_timed_out() which scsi_times_out() will call if it is populated to notify the LLD that an outstanding command took a timeout. There are three possible returns: EH_HANDLED: I've fixed the problem, please complete the command for me (as soon as the timer fires, scsi_done will do nothing, so the timer itself will call a special version of scsi_done that doesn't check the timer). EH_NOT_HANDLED: Invoke error recovery as normal EH_RESET_TIMER: The command will complete, reset the timer to its original value and start it ticking again. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com> Based on work by Christoph Hellwig and Luben Tuikov
f57d08d1