mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
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:
|
||
|---|---|---|
| .. | ||
| core.c | ||
| fabrics.c | ||
| fabrics.h | ||
| fault_inject.c | ||
| fc.c | ||
| fc.h | ||
| hwmon.c | ||
| ioctl.c | ||
| Kconfig | ||
| lightnvm.c | ||
| Makefile | ||
| multipath.c | ||
| nvme.h | ||
| pci.c | ||
| rdma.c | ||
| tcp.c | ||
| trace.c | ||
| trace.h | ||
| zns.c | ||