linux/drivers/nvme/target
James Smart b6f807738b nvme_fcloop: refactor host/target io job access
The split between what the host accesses on its flows vs what the
target side accesses was flawed. Abort handling didn't properly
clear initiator vs target structure cross-reference and locks
weren't used for synchronization. Thus, there were issues of
freeing structures too soon and access after free.

A couple of these existed pre the IN_ISR mods, but when the
target upcalls were converted to work items, thus adding delays
between the 2 sides of accesses, the problems became pronounced.

Resolve by:
- tracking io state mainly in the tgt-side io structure.
- make the tgt-side io structure released by reference not by
  code flow.
- when changing initiator structures, use locks for
  synchronization
- aborts are clearly tracked for which side saw the abort, and
  after seeing the abort, cross-references are cleared under lock.

Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2018-01-08 11:01:55 +01:00
..
admin-cmd.c nvmet: remove redundant local variable 2017-11-10 19:53:25 -07:00
configfs.c nvmet: make config_item_type const 2017-10-19 16:15:28 +02:00
core.c Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
discovery.c nvme: use a single NVME_AQ_DEPTH and relax it to 32 2017-06-28 08:14:13 -06:00
fabrics-cmd.c nvmet: lower log level for each queue creation 2018-01-08 11:01:52 +01:00
fc.c nvmet/fc: Use sgl_alloc() and sgl_free() 2018-01-06 09:18:00 -07:00
fcloop.c nvme_fcloop: refactor host/target io job access 2018-01-08 11:01:55 +01:00
io-cmd.c nvmet: kill nvmet_inline_bio_init 2017-11-10 19:53:25 -07:00
Kconfig nvmet/rdma: Use sgl_alloc() and sgl_free() 2018-01-06 09:18:00 -07:00
loop.c nvme-loop: check if queue is ready in queue_rq 2017-11-20 08:28:36 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nvmet.h Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
rdma.c nvmet-rdma: lowering log level for chatty debug messages 2018-01-08 11:01:52 +01:00