libata: Fix command retry decision
authorDamien Le Moal <damien.lemoal@wdc.com>
Wed, 9 May 2018 00:28:12 +0000 (09:28 +0900)
committerTejun Heo <tj@kernel.org>
Thu, 10 May 2018 18:43:20 +0000 (11:43 -0700)
commit804689ad2d9b66d0d3920b48cf05881049d44589
treed1b6c0151509a56f14a762438d3334412a47c154
parent7eb49509dd6b2a4ed0c18a0f8c187afbacf98b42
libata: Fix command retry decision

For failed commands with valid sense data (e.g. NCQ commands),
scsi_check_sense() is used in ata_analyze_tf() to determine if the
command can be retried. In such case, rely on this decision and ignore
the command error mask based decision done in ata_worth_retry().

This fixes useless retries of commands such as unaligned writes on zoned
disks (TYPE_ZAC).

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
drivers/ata/libata-eh.c