summaryrefslogtreecommitdiffstats
path: root/transport/ib-verbs
diff options
context:
space:
mode:
authorHarshavardhana <harsha@zresearch.com>2009-04-02 02:50:33 -0700
committerAnand V. Avati <avati@amp.gluster.com>2009-04-02 18:11:21 +0530
commit3acfb275879fb8392f8cb4ea2a58766afbc42baa (patch)
tree85cbea3c59e234868ac483e69b93b5ed90395ceb /transport/ib-verbs
parentcda677a98d039de6381887422d0b482ed412daaf (diff)
Fixes server goes into infinite loop on Solaris when poll_err is not set.
Server goes into infinite loop when poll_err is not set. Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Diffstat (limited to 'transport/ib-verbs')
-rw-r--r--transport/ib-verbs/src/ib-verbs.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/transport/ib-verbs/src/ib-verbs.c b/transport/ib-verbs/src/ib-verbs.c
index 9a21b8a8f6d..5f133bd558b 100644
--- a/transport/ib-verbs/src/ib-verbs.c
+++ b/transport/ib-verbs/src/ib-verbs.c
@@ -963,7 +963,8 @@ __tcp_rwv (transport_t *this, struct iovec *vector, int count,
if (ret == 0)
{
- gf_log (this->xl->name, GF_LOG_ERROR, "EOF from peer");
+ gf_log (this->xl->name, GF_LOG_DEBUG,
+ "EOF from peer %s", this->peerinfo.identifier);
opcount = -1;
errno = ENOTCONN;
break;
@@ -2012,7 +2013,7 @@ ib_verbs_event_handler (int fd, int idx, void *data,
ret = ib_verbs_handshake_pollin (this);
}
- if (poll_err) {
+ if (ret < 0 || poll_err) {
ret = ib_verbs_handshake_pollerr (this);
}