nvmet: fix workqueue MEM_RECLAIM flushing dependency
authorSagi Grimberg <sagi@grimberg.me>
Wed, 28 Sep 2022 06:39:10 +0000 (09:39 +0300)
committerChristoph Hellwig <hch@lst.de>
Wed, 19 Oct 2022 10:43:13 +0000 (12:43 +0200)
commitddd2b8de9f85b388925e7dc46b3890fc1a0d8d24
tree565761b751fd1423e3ab77401e274806de63263c
parentc94b7f9bab22ac504f9153767676e659988575ad
nvmet: fix workqueue MEM_RECLAIM flushing dependency

The keep alive timer needs to stay on nvmet_wq, and not
modified to reschedule on the system_wq.

This fixes a warning:
------------[ cut here ]------------
workqueue: WQ_MEM_RECLAIM
nvmet-wq:nvmet_rdma_release_queue_work [nvmet_rdma] is flushing
!WQ_MEM_RECLAIM events:nvmet_keep_alive_timer [nvmet]
WARNING: CPU: 3 PID: 1086 at kernel/workqueue.c:2628
check_flush_dependency+0x16c/0x1e0

Reported-by: Yi Zhang <yi.zhang@redhat.com>
Fixes: 8832cf922151 ("nvmet: use a private workqueue instead of the system workqueue")
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/core.c