summaryrefslogtreecommitdiff
path: root/block/genhd.c
diff options
context:
space:
mode:
authorJames Smart <jsmart2021@gmail.com>2021-05-11 07:56:35 +0300
committerChristoph Hellwig <hch@lst.de>2021-05-19 09:40:24 +0300
commita7d139145a6640172516b193abf6d2398620aa14 (patch)
tree94126636a129c21d4b2254f3dcd1a31f2dcb50f7 /block/genhd.c
parenta0fdd1418007f83565d3f2e04b47923ba93a9b8c (diff)
downloadlinux-a7d139145a6640172516b193abf6d2398620aa14.tar.xz
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 'block/genhd.c')
0 files changed, 0 insertions, 0 deletions