nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown
authorSagi Grimberg <sagi@grimberg.me>
Sun, 24 Jul 2022 08:58:43 +0000 (11:58 +0300)
committerChristoph Hellwig <hch@lst.de>
Tue, 26 Jul 2022 20:04:26 +0000 (16:04 -0400)
commitd28e71cd5d4168e8a1c356a783169fb74d5d84c5
treea43a0322abe9e9ae2db8ad89b0f65e58c5a04d06
parent1611f8bc108420b9a04d86c49339156f586488d3
nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown

We probably need nvmet_tcp_wq to have MEM_RECLAIM as we are
sending/receiving for the socket from works on this workqueue.
Also this eliminates lockdep complaints:
--
[ 6174.010200] workqueue: WQ_MEM_RECLAIM
nvmet-wq:nvmet_tcp_release_queue_work [nvmet_tcp] is flushing
!WQ_MEM_RECLAIM nvmet_tcp_wq:nvmet_tcp_io_work [nvmet_tcp]
[ 6174.010216] WARNING: CPU: 20 PID: 14456 at kernel/workqueue.c:2628
check_flush_dependency+0x110/0x14c

Reported-by: Yi Zhang <yi.zhang@redhat.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/tcp.c