]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
async: skip unnecessary steps when parsing simple messages
authorHaomai Wang <haomai@xsky.com>
Sat, 12 Mar 2016 13:02:51 +0000 (21:02 +0800)
committerSage Weil <sage@redhat.com>
Tue, 7 Jun 2016 14:59:05 +0000 (10:59 -0400)
Signed-off-by: Haomai Wang <haomai@xsky.com>
(cherry picked from commit a9ac1c4f88ffb5f66c43527ea0ae1deef1be3a96)

src/msg/async/AsyncConnection.cc

index 7ae81871845359d4b5d8891e791d289d82e9eb41..813cfd85853d7ee30c233bbed78df53ee5cc007f 100644 (file)
@@ -729,7 +729,6 @@ void AsyncConnection::process()
             ldout(async_msgr->cct, 20) << __func__ << " got front " << front.length() << dendl;
           }
           state = STATE_OPEN_MESSAGE_READ_MIDDLE;
-          break;
         }
 
       case STATE_OPEN_MESSAGE_READ_MIDDLE:
@@ -751,7 +750,6 @@ void AsyncConnection::process()
           }
 
           state = STATE_OPEN_MESSAGE_READ_DATA_PREPARE;
-          break;
         }
 
       case STATE_OPEN_MESSAGE_READ_DATA_PREPARE:
@@ -780,7 +778,6 @@ void AsyncConnection::process()
 
           msg_left = data_len;
           state = STATE_OPEN_MESSAGE_READ_DATA;
-          break;
         }
 
       case STATE_OPEN_MESSAGE_READ_DATA:
@@ -801,10 +798,10 @@ void AsyncConnection::process()
             msg_left -= read;
           }
 
-          if (msg_left == 0)
-            state = STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH;
+          if (msg_left > 0)
+            break;
 
-          break;
+          state = STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH;
         }
 
       case STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH: