diff options
author | James Smart <jsmart2021@gmail.com> | 2021-05-10 21:56:35 -0700 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2021-05-19 08:40:24 +0200 |
commit | a7d139145a6640172516b193abf6d2398620aa14 (patch) | |
tree | 94126636a129c21d4b2254f3dcd1a31f2dcb50f7 /drivers/gnss | |
parent | a0fdd1418007f83565d3f2e04b47923ba93a9b8c (diff) |
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: 73a5379937ec ("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>
Diffstat (limited to 'drivers/gnss')
0 files changed, 0 insertions, 0 deletions