From: Adir Lev Date: Sun, 28 May 2017 13:11:54 +0000 (+0000) Subject: msg/async/rdma: avoid adding worker twice to pending_workers X-Git-Tag: v12.1.2~1^2~17^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F15908%2Fhead;p=ceph.git msg/async/rdma: avoid adding worker twice to pending_workers Change-Id: I4dda9040a055bdb8787ffd23a6928925d0a69d83 Signed-off-by: Adir Lev --- diff --git a/src/msg/async/rdma/RDMAStack.h b/src/msg/async/rdma/RDMAStack.h index fdd21761d328..27373fb6487a 100644 --- a/src/msg/async/rdma/RDMAStack.h +++ b/src/msg/async/rdma/RDMAStack.h @@ -127,10 +127,11 @@ class RDMADispatcher { int register_qp(QueuePair *qp, RDMAConnectedSocketImpl* csi); void make_pending_worker(RDMAWorker* w) { Mutex::Locker l(w_lock); - if (pending_workers.back() != w) { - pending_workers.push_back(w); - ++num_pending_workers; - } + auto it = std::find(pending_workers.begin(), pending_workers.end(), w); + if (it != pending_workers.end()) + return; + pending_workers.push_back(w); + ++num_pending_workers; } RDMAStack* get_stack() { return stack; } RDMAConnectedSocketImpl* get_conn_lockless(uint32_t qp);