]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
Merge pull request #6971 from ukernel/jewel-14120
authorSage Weil <sage@redhat.com>
Thu, 5 May 2016 16:37:44 +0000 (12:37 -0400)
committerSage Weil <sage@redhat.com>
Thu, 5 May 2016 16:37:44 +0000 (12:37 -0400)
msg/simple/Pipe: avoid infinite loop in Pipe::do_recv()

Reviewed-by: Haomai Wang <haomai@xsky.com>
1  2 
src/msg/simple/Pipe.cc

index 74efa72015c03b66cdd2b934fb2801d1510e155d,e4e1df7fe51a5ea85ee59c292eb7215da62d618b..53781b82b1735600be1e2ee974ea4238c3509d5b
@@@ -2508,12 -2495,12 +2508,12 @@@ int Pipe::tcp_read_wait(
    return 0;
  }
  
 -int Pipe::do_recv(char *buf, size_t len, int flags)
 +ssize_t Pipe::do_recv(char *buf, size_t len, int flags)
  {
  again:
 -  int got = ::recv( sd, buf, len, flags );
 +  ssize_t got = ::recv( sd, buf, len, flags );
    if (got < 0) {
-     if (errno == EAGAIN || errno == EINTR) {
+     if (errno == EINTR) {
        goto again;
      }
      ldout(msgr->cct, 10) << __func__ << " socket " << sd << " returned "