Re: libata error handling
From: Luben Tuikov <hidden>
Date: 2005-08-19 21:02:36
Also in:
linux-scsi, lkml
On 08/19/05 16:29, Mike Anderson wrote:
Luben Tuikov [off-list ref] wrote:quoted
Consider this: When SCSI Core told you that the command timed out, A) it has already finished, B) it hasn't already finished. In case A, you can return EH_HANDLED. In case B, you return EH_NOT_HANDLED, and deal with it in the eh_strategy_handler. (Hint: you can still "finish" it from there.)But dealing with it in the eh_strategy_handler means that you may be stopping all IO on the host instance as the first lun returns EH_NOT_HANDLED for LUN based canceling.
Hi Mike, how are you? Yes, this is true. See my email to Patrick.
I still think we can do better here for an LLDD that cannot execute a cancel in interrupt context.
This is the key! Think about this: You do not need to cancel a command to cancel a command. ;-)
Having a error handler that works is a plus, I would hope that some factoring would happen over time from the eh_strategy_handler to some transport (or other factor point) error handler. I would think from a testing, support, and block level multipath predictability sharing code would be a good goal.
Yes, definitely. Hopefully I'll be posting code soon. Luben