linux/drivers/nvme/target
Sagi Grimberg 0fbcfb089a nvmet-tcp: fix potential race of tcp socket closing accept_work
When we accept a TCP connection and allocate an nvmet-tcp queue we should
make sure not to fully establish it or reference it as the connection may
be already closing, which triggers queue release work, which does not
fence against queue establishment.

In order to address such a race, we make sure to check the sk_state and
contain the queue reference to be done underneath the sk_callback_lock
such that the queue release work correctly fences against it.

Fixes: 872d26a391 ("nvmet-tcp: add NVMe over TCP target driver")
Reported-by: Elad Grupi <elad.grupi@dell.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2021-02-10 16:38:03 +01:00
..
admin-cmd.c nvmet: remove extra variable in identify ns 2021-02-02 10:26:11 +01:00
configfs.c nvmet: Fix nvmet_is_port_enabled indentation 2021-02-02 10:26:10 +01:00
core.c nvmet: remove unused ctrl->cqs 2020-12-01 20:36:36 +01:00
discovery.c nvmet: make sure discovery change log event is protected 2020-12-01 20:36:37 +01:00
fabrics-cmd.c nvmet: add metadata/T10-PI support 2020-05-27 07:12:40 +02:00
fc.c nvmet-fc: use RCU proctection for assoc_list 2021-02-02 10:26:10 +01:00
fcloop.c nvme: constify static attribute_group structs 2021-02-02 10:26:10 +01:00
io-cmd-bdev.c nvmet: add lba to sect conversion helpers 2021-02-02 10:26:11 +01:00
io-cmd-file.c nvmet: rename nvmet_check_data_len to nvmet_check_transfer_len 2020-05-27 07:12:39 +02:00
Kconfig nvmet: fix a spelling mistake "incuding" -> "including" in Kconfig 2020-12-01 20:36:37 +01:00
loop.c for-5.11/drivers-2020-12-14 2020-12-16 13:09:32 -08:00
Makefile nvmet: add passthru code to process commands 2020-07-29 07:45:21 +02:00
nvmet.h nvmet: add lba to sect conversion helpers 2021-02-02 10:26:11 +01:00
passthru.c block: remove unnecessary argument from blk_execute_rq_nowait 2021-01-24 21:52:39 -07:00
rdma.c nvmet-rdma: Fix NULL deref when setting pi_enable and traddr INADDR_ANY 2021-01-14 20:27:34 +01:00
tcp.c nvmet-tcp: fix potential race of tcp socket closing accept_work 2021-02-10 16:38:03 +01:00
trace.c nvmet: trace: parse Get LBA Status command in detail 2019-08-29 12:55:01 -07:00
trace.h nvmet: fix a NULL pointer dereference when tracing the flush command 2020-10-27 10:02:50 +01:00