From: Sage Weil Date: Thu, 5 May 2016 16:37:44 +0000 (-0400) Subject: Merge pull request #6971 from ukernel/jewel-14120 X-Git-Tag: v11.0.0~136^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bd1e599d952fe2f8f19492a88d0e665f6dcb2d48;p=ceph.git Merge pull request #6971 from ukernel/jewel-14120 msg/simple/Pipe: avoid infinite loop in Pipe::do_recv() Reviewed-by: Haomai Wang --- bd1e599d952fe2f8f19492a88d0e665f6dcb2d48 diff --cc src/msg/simple/Pipe.cc index 74efa72015c0,e4e1df7fe51a..53781b82b173 --- a/src/msg/simple/Pipe.cc +++ b/src/msg/simple/Pipe.cc @@@ -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 "