[PATCH] nvme-fc: clear q_live at beginning of association teardown

Sagi Grimberg sagi at grimberg.me
Thu May 13 12:59:14 PDT 2021


>>> 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 io 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).
>>
>> Sounds like the correct behavior to me, what is the motivation for doing
>> that only after all I/O was aborted?
>>
>> And,
>> Reviewed-by: Sagi Grimberg <sagi at grimberg.me>
> 
> source evolution over time (rdma/tcp changed how they worked) and the 
> need didn't show up earlier based on the earlier checks.

Makes sense...



More information about the Linux-nvme mailing list