]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
xio: fix reuse of outer loop index in inner loop 4750/head
authorCasey Bodley <casey@cohortfs.com>
Fri, 22 May 2015 17:07:45 +0000 (13:07 -0400)
committerVu Pham <vu@mellanox.com>
Fri, 22 May 2015 18:09:43 +0000 (11:09 -0700)
Reported-by: Vu Pham <vuhuong@mellanox.com>
Signed-off-by: Casey Bodley <casey@cohortfs.com>
src/msg/xio/XioConnection.cc

index 950ccfd47c1dca266a3eaf4975aa092c28944f12..74a0620f00f2816c6ec5f3c1a0f283270106033c 100644 (file)
@@ -520,8 +520,7 @@ int XioConnection::discard_input_queue(uint32_t flags)
     pthread_spin_unlock(&sp);
 
   // mqueue
-  int ix, q_size =  disc_q.size();
-  for (ix = 0; ix < q_size; ++ix) {
+  while (!disc_q.empty()) {
     Message::Queue::iterator q_iter = disc_q.begin();
     Message* m = &(*q_iter);
     disc_q.erase(q_iter);
@@ -529,8 +528,7 @@ int XioConnection::discard_input_queue(uint32_t flags)
   }
 
   // requeue
-  q_size =  deferred_q.size();
-  for (ix = 0; ix < q_size; ++ix) {
+  while (!deferred_q.empty()) {
     XioSubmit::Queue::iterator q_iter = deferred_q.begin();
     XioSubmit* xs = &(*q_iter);
     XioMsg* xmsg;
@@ -539,8 +537,7 @@ int XioConnection::discard_input_queue(uint32_t flags)
        xmsg = static_cast<XioMsg*>(xs);
        deferred_q.erase(q_iter);
        // release once for each chained xio_msg
-       for (ix = 0; ix < int(xmsg->hdr.msg_cnt); ++ix)
-         xmsg->put();
+       xmsg->put(xmsg->hdr.msg_cnt);
        break;
       case XioSubmit::INCOMING_MSG_RELEASE:
        deferred_q.erase(q_iter);