OpenCloudOS-Kernel/drivers/nvme/host
James Smart a7d139145a nvme-fc: clear q_live at beginning of association teardown
The __nvmf_check_ready() routine used to bounce all filesystem io if the
controller state isn't LIVE.  However, a later patch changed the logic so
that it rejection ends up being based on the Q live check.  The FC
transport has a slightly different sequence from rdma and tcp for
shutting down queues/marking them non-live.  FC marks its queue non-live
after aborting all ios and waiting for their termination, leaving a
rather large window for filesystem io to continue to hit the transport.
Unfortunately this resulted in filesystem I/O or applications seeing I/O
errors.

Change the FC transport to mark the queues non-live at the first sign of
teardown for the association (when I/O is initially terminated).

Fixes: 73a5379937 ("nvme-fabrics: allow to queue requests for live queues")
Signed-off-by: James Smart <jsmart2021@gmail.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2021-05-19 08:40:24 +02:00
..
Kconfig nvme-tcp: fix kconfig dependency warning when !CRYPTO 2020-09-15 07:58:49 +02:00
Makefile nvme: move the ioctl code to a separate file 2021-04-15 08:12:55 +02:00
core.c nvme-multipath: fix double initialization of ANA state 2021-05-11 18:30:45 +02:00
fabrics.c nvme: move the fabrics queue ready check routines to core 2021-05-04 09:35:49 +02:00
fabrics.h nvme: move the fabrics queue ready check routines to core 2021-05-04 09:35:49 +02:00
fault_inject.c nvme: enable to inject errors into admin commands 2019-06-21 11:15:50 +02:00
fc.c nvme-fc: clear q_live at beginning of association teardown 2021-05-19 08:40:24 +02:00
fc.h nvme-fc: Update header and host for common definitions for LS handling 2020-05-09 16:18:33 -06:00
hwmon.c nvme-hwmon: Return error code when registration fails 2021-03-05 13:41:03 +01:00
ioctl.c nvme: fix controller ioctl through ns_head 2021-05-04 09:35:47 +02:00
lightnvm.c for-5.13/drivers-2021-04-27 2021-04-28 14:39:37 -07:00
multipath.c nvmet: use new ana_log_size instead the old one 2021-05-13 16:33:32 +02:00
nvme.h nvme-multipath: fix double initialization of ANA state 2021-05-11 18:30:45 +02:00
pci.c nvme-pci: fix controller reset hang when racing with nvme_timeout 2021-05-04 09:35:50 +02:00
rdma.c nvme: move the fabrics queue ready check routines to core 2021-05-04 09:35:49 +02:00
tcp.c nvme-tcp: rerun io_work if req_list is not empty 2021-05-19 08:33:42 +02:00
trace.c nvme: add tracing of zns commands 2021-02-02 10:26:12 +01:00
trace.h nvme-trace: print result and status in hex format 2019-06-21 11:12:37 +02:00
zns.c nvme: let namespace probing continue for unsupported features 2021-04-15 08:12:56 +02:00