+++ /dev/null
-Bottom: 1ae738a42c25e6d2f1c92e4e79e5653b620de2c4
-Top: 0e6b8c5a5f999b6695127164e8c2493cb15abf49
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2012-06-25 17:12:24 -0700
-
-Refresh of shut_wr
-
----
-
-diff --git a/src/rsocket.c b/src/rsocket.c
-index 63bf03e..0bba7e5 100644
---- a/src/rsocket.c
-+++ b/src/rsocket.c
-@@ -96,8 +96,7 @@ enum {
- #define rs_msg_data(imm_data) (imm_data & 0x1FFFFFFF)
-
- enum {
-- RS_CTRL_DISCONNECT,
-- RS_CTRL_SHUTDOWN
-+ RS_CTRL_DISCONNECT
- };
-
- struct rs_msg {
-@@ -884,8 +883,6 @@ static int rs_poll_cq(struct rsocket *rs)
- if (rs_msg_data(imm_data) == RS_CTRL_DISCONNECT) {
- rs->state = rs_disconnected;
- return ERR(ECONNRESET);
-- } else if (rs_msg_data(imm_data) == RS_CTRL_SHUTDOWN) {
-- rs->state = rs_shutdown_rd;
- }
- break;
- default:
Bottom: 938168c7141b54196d5a134aca1fe7c88dcfb3b5
-Top: 1ae738a42c25e6d2f1c92e4e79e5653b620de2c4
+Top: 0e6b8c5a5f999b6695127164e8c2493cb15abf49
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2012-06-25 14:19:54 -0700
---
diff --git a/src/rsocket.c b/src/rsocket.c
-index ed994fe..63bf03e 100644
+index ed994fe..0bba7e5 100644
--- a/src/rsocket.c
+++ b/src/rsocket.c
-@@ -96,7 +96,8 @@ enum {
- #define rs_msg_data(imm_data) (imm_data & 0x1FFFFFFF)
-
- enum {
-- RS_CTRL_DISCONNECT
-+ RS_CTRL_DISCONNECT,
-+ RS_CTRL_SHUTDOWN
- };
-
- struct rs_msg {
-@@ -321,7 +322,7 @@ static int rs_set_nonblocking(struct rsocket *rs, long arg)
+@@ -321,7 +321,7 @@ static int rs_set_nonblocking(struct rsocket *rs, long arg)
if (rs->cm_id->recv_cq_channel)
ret = fcntl(rs->cm_id->recv_cq_channel->fd, F_SETFL, arg);
ret = fcntl(rs->cm_id->channel->fd, F_SETFL, arg);
return ret;
-@@ -883,6 +884,8 @@ static int rs_poll_cq(struct rsocket *rs)
- if (rs_msg_data(imm_data) == RS_CTRL_DISCONNECT) {
- rs->state = rs_disconnected;
- return ERR(ECONNRESET);
-+ } else if (rs_msg_data(imm_data) == RS_CTRL_SHUTDOWN) {
-+ rs->state = rs_shutdown_rd;
- }
- break;
- default:
-@@ -907,7 +910,7 @@ static int rs_poll_cq(struct rsocket *rs)
+@@ -907,7 +907,7 @@ static int rs_poll_cq(struct rsocket *rs)
}
}
while (!ret && rcnt--)
ret = rdma_post_recvv(rs->cm_id, NULL, NULL, 0);
-@@ -932,7 +935,7 @@ static int rs_get_cq_event(struct rsocket *rs)
+@@ -932,7 +932,7 @@ static int rs_get_cq_event(struct rsocket *rs)
if (!ret) {
ibv_ack_cq_events(rs->cm_id->recv_cq, 1);
rs->cq_armed = 0;
rs->state = rs_error;
}
-@@ -1457,6 +1460,8 @@ static int rs_poll_rs(struct rsocket *rs, int events,
+@@ -1457,6 +1457,8 @@ static int rs_poll_rs(struct rsocket *rs, int events,
}
/* fall through */
case rs_connected:
case rs_disconnected:
case rs_error:
rs_process_cq(rs, nonblock, test);
-@@ -1466,10 +1471,12 @@ static int rs_poll_rs(struct rsocket *rs, int events,
+@@ -1466,10 +1468,12 @@ static int rs_poll_rs(struct rsocket *rs, int events,
revents |= POLLIN;
if ((events & POLLOUT) && rs_can_send(rs))
revents |= POLLOUT;
return revents;
case rs_connect_error:
-@@ -1690,12 +1697,16 @@ int rshutdown(int socket, int how)
+@@ -1690,12 +1694,16 @@ int rshutdown(int socket, int how)
struct rsocket *rs;
int ret = 0;
if (!rs_can_send_ctrl(rs)) {
ret = rs_process_cq(rs, 0, rs_can_send_ctrl);
if (ret)
-@@ -1711,6 +1722,9 @@ int rshutdown(int socket, int how)
+@@ -1711,6 +1719,9 @@ int rshutdown(int socket, int how)
if (!rs_all_sends_done(rs) && rs->state != rs_error)
rs_process_cq(rs, 0, rs_all_sends_done);