nvme-fc: on lldd/transport io error, terminate association
authorJames Smart <jsmart2021@gmail.com>
Fri, 2 Jun 2017 05:54:21 +0000 (22:54 -0700)
committerChristoph Hellwig <hch@lst.de>
Wed, 7 Jun 2017 09:08:52 +0000 (11:08 +0200)
commitf874d5d079ec35158fa1a1509554c9d641bd5770
treee689eaa2640cb8fd247e15422b7008cb7bbb3271
parente818a5b487fea20494b0e48548c1085634abdc0d
nvme-fc: on lldd/transport io error, terminate association

Per FC-NVME, when lldd or transport detects an i/o error, the
connection must be terminated, which in turn requires the association
to be termianted.  Currently the transport simply creates a nvme
completion status of transport error and returns the io. The FC-NVME
spec makes the mandate as initiator and host, depending on the error,
can get out of sync on outstanding io counts (sqhd/sqtail).

Implement the association teardown on lldd or transport detected
errors.

Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
drivers/nvme/host/fc.c