On Tue, Mar 6, 2018 at 10:04 AM, Martin K. Petersen <martin.petersen@xxxxxxxxxx> wrote: > >> 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! > > https://patchwork.kernel.org/patch/10244375/ 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.