diff options
author | James Smart <[email protected]> | 2021-05-10 21:56:35 -0700 |
---|---|---|
committer | Christoph Hellwig <[email protected]> | 2021-05-19 08:40:24 +0200 |
commit | a7d139145a6640172516b193abf6d2398620aa14 (patch) | |
tree | 94126636a129c21d4b2254f3dcd1a31f2dcb50f7 /net/lapb/lapb_iface.c | |
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 <[email protected]>
Reviewed-by: Sagi Grimberg <[email protected]>
Reviewed-by: Himanshu Madhani <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
Diffstat (limited to 'net/lapb/lapb_iface.c')
0 files changed, 0 insertions, 0 deletions