On 2018/3/7 2:29, Dan Williams wrote:
On Tue, Mar 6, 2018 at 10:04 AM, Martin K. Petersen
When ata device doing EH, some commands still attached with tasks are not
passed to libata when abort failed or recover failed, so libata did not
handle these commands. After these commands done, sas task is freed, but
ata qc is not freed.
Somebody from the libsas camp, please review!
It's been a while since I've had access to libsas hardware, but this
patch looks like a good idea to me. However, it seems that it could be
narrowed to just the sas_eh_finish_cmd() that need to be converted to
sas_eh_defer_cmd(). Otherwise, if there are no more direct usages of
sas_eh_finish_cmd() then we should consider just renaming
sas_eh_defer_cmd() to sas_eh_finish_cmd() and delete the old
sas_eh_finish_cmd(), i.e. remove the distinction.
Delete the old sas_eh_finish_cmd() seems better. Thanks for the
suggestion. I will respin this patch.