linux/drivers/nvme/host
James Smart 0a02e39fd1 nvme-fc: correct io termination handling
The io completion handling for i/o's that are failing due to
to a transport error or association termination had issues, causing
io failures (DNR set so retries didn't kick in) or long stalls.

Change the io completion handler for the following items:

When an io has been completed due to a transport abort (based on an
exchange error) or when marked as aborted as part of an association
termination (FCOP_FLAGS_TERMIO), set the NVME completion status to
NVME_SC_ABORTED. By default, do not set DNR on the status so that a
retry can be attempted after association recreate.

In cases where an io is failed (non-successful nvme status including
aborted), if the controller is being deleted (blk_queue_dying) or
the io was part of the ios used for association creation (ctrl state
is NEW or RECONNECTING), then additionally set the DNR bit so the io
will not be retried. If the failed io was part of association creation,
the failure will tear down the partially completioned association and
typically restart a new reconnect attempt (another create association
later).

Rearranged code flow to remove a largely unneeded local variable.

Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2017-10-20 12:16:59 +02:00
..
core.c nvme: use ida_simple_{get,remove} for the controller instance 2017-10-20 12:16:57 +02:00
fabrics.c nvme-fabrics: request transport module 2017-10-04 09:43:58 +02:00
fabrics.h nvme: read the subsystem NQN from Identify Controller 2017-06-28 08:14:13 -06:00
fc.c nvme-fc: correct io termination handling 2017-10-20 12:16:59 +02:00
Kconfig nvme: Remove SCSI translations 2017-06-28 08:14:13 -06:00
lightnvm.c nvme: fix lightnvm check 2017-09-11 12:29:36 -04:00
Makefile nvme: Makefile: remove dead build rule 2017-06-29 09:43:23 -06:00
nvme.h nvme: introduce nvme_reinit_tagset 2017-10-18 19:27:48 +02:00
pci.c nvme-pci: add SGL support 2017-10-20 12:16:58 +02:00
rdma.c nvme-rdma: Add BLK_MQ_F_NO_SCHED flag to admin tag set 2017-10-19 10:58:53 +02:00