nvmet-rdma: Avoid o(n^2) loop in delete_ctrl
authorSagi Grimberg <sagi.grimberg@vastdata.com>
Tue, 7 May 2024 06:54:44 +0000 (09:54 +0300)
committerKeith Busch <kbusch@kernel.org>
Tue, 7 May 2024 15:04:02 +0000 (08:04 -0700)
commitc51a22e63ffde3033f74865a6e7b7d6e27cd6ab4
treed8e93c02905cabe93306f0fce7d9cc11a73f65d8
parent0e34bd9605f6c95609c32aa82f0a394e2a945908
nvmet-rdma: Avoid o(n^2) loop in delete_ctrl

When deleting a nvmet-rdma ctrl, we essentially loop over all
queues that belong to the controller and schedule a removal of
each. Instead of restarting the loop every time a queue is found,
do a simple safe list traversal.

This addresses an unneeded time spent scheduling queue removal in
cases there a lot of queues.

Signed-off-by: Sagi Grimberg <sagi.grimberg@vastdata.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/target/rdma.c