Hi Tejun,
在 2018/2/28 2:19, Tejun Heo 写道:
Hello,
On Mon, Feb 26, 2018 at 07:45:37PM +0800, chenxiang (M) wrote:
So, if there are real consequences, we can definitely add a way to
short-circuit the recovery logic but let's do that by adding proper
signaling rathr than testing for driver type.
I am not familiar with ata recovery logic, and do you have idea
about how to add a way to
short-circuit the recovery logic by adding proper signaling?
e.g. define a return value from reset function which indicates no
retry or introduce a port flag. Basically, something which doens't
add special casing logic to the core logic.
If we can introduce a port flags such as ATA_LFLAG_DISABLED or
ATA_EHI_NO_RECOVERY before ata_eh_recover,
it will skip recovery. But we only get device status NODEV from
ata_do_reset which is after ata_eh_recover, i don't
think it is used to introduce a port flags at that time.
From function ata_eh_reset, it seems there are two situations that end
the recovery logic in current code:
1. Retry 3 times;
2. Reset function return value -ERESTART, but this return value seems be
specal situation for ATA;
Thanks.