linux/drivers/nvme/target
Roy Shterman 0de5cd367c nvme-fabrics: protect against module unload during create_ctrl
NVMe transport driver module unload may (and usually does) trigger
iteration over the active controllers and delete them all (sometimes
under a mutex).  However, a controller can be created concurrently with
module unload which can lead to leakage of resources (most important char
device node leakage) in case the controller creation occured after the
unload delete and drain sequence.  To protect against this, we take a
module reference to guarantee that the nvme transport driver is not
unloaded while creating a controller.

Signed-off-by: Roy Shterman <roys@lightbitslabs.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2018-01-08 11:01:56 +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: cleanup nvmet add_port/remove_port 2018-01-08 11:01:56 +01: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-fabrics: protect against module unload during create_ctrl 2018-01-08 11:01:56 +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