]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async: batch handle msg_iovlen. 18415/head
authorJianpeng Ma <jianpeng.ma@intel.com>
Mon, 23 Oct 2017 11:24:08 +0000 (19:24 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Mon, 23 Oct 2017 11:24:08 +0000 (19:24 +0800)
Also remove redundan code "msg.msg_iovlen = 0".

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/msg/async/PosixStack.cc

index e0104fdc4bcee134115cfa1349ec067e625a8a97..2e432b86919934d30016f41da8fb80b20981e330 100644 (file)
@@ -119,18 +119,15 @@ class PosixConnectedSocketImpl final : public ConnectedSocketImpl {
       uint64_t size = MIN(left_pbrs, IOV_MAX);
       left_pbrs -= size;
       memset(&msg, 0, sizeof(msg));
-      msg.msg_iovlen = 0;
+      msg.msg_iovlen = size;
       msg.msg_iov = msgvec;
       unsigned msglen = 0;
-      while (size > 0) {
-        msgvec[msg.msg_iovlen].iov_base = (void*)(pb->c_str());
-        msgvec[msg.msg_iovlen].iov_len = pb->length();
-        msg.msg_iovlen++;
-        msglen += pb->length();
-        ++pb;
-        size--;
+      for (auto iov = msgvec; iov != msgvec + size; iov++) {
+       iov->iov_base = (void*)(pb->c_str());
+       iov->iov_len = pb->length();
+       msglen += pb->length();
+       ++pb;
       }
-
       ssize_t r = do_sendmsg(_fd, msg, msglen, left_pbrs || more);
       if (r < 0)
         return r;