]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
refresh (create temporary patch)
authorSean Hefty <sean.hefty@intel.com>
Mon, 28 May 2012 08:13:57 +0000 (01:13 -0700)
committerSean Hefty <sean.hefty@intel.com>
Mon, 28 May 2012 08:13:57 +0000 (01:13 -0700)
meta
patches/refresh-temp [new file with mode: 0644]

diff --git a/meta b/meta
index fba4908093102dc41f5d98dc5e3659f5c3739a65..c506c14b3cdfb47db9bda500775beef5ec1cac90 100644 (file)
--- a/meta
+++ b/meta
@@ -1,6 +1,6 @@
 Version: 1
-Previous: e0d8bf054de0b16d6fcd269d58a286c048fbf3d2
-Head: 548f496443177ae86bbd9690ad315351ce1efae4
+Previous: 98b69a5fd74cf17c5fbee71edc60d88e4d0ae470
+Head: f4aeb798a274ac7a194d566849b9536b9e64e83d
 Applied:
   destroy_cqs: 66410c265b2661e16b7f6126bcc4ea5c7e1af1bd
   conn-err: ac46465ae6061b06f005ba9b49b371c9eb0d2325
@@ -15,6 +15,7 @@ Applied:
   acm-init: 666fa02d8f18ac2e98008cd3d57a90a864203548
   pre-socket: 659f605c2d6bdba067651138aa5ffc01f14465d6
   rs-states: 548f496443177ae86bbd9690ad315351ce1efae4
+  refresh-temp: f4aeb798a274ac7a194d566849b9536b9e64e83d
 Unapplied:
   rs-1sge: 85e4c4a0da0b501b60a1035d7a003ee20a749511
   rs-def-inline: 6ad70d3b80178e40fea97f662a6b31e51cddc0af
diff --git a/patches/refresh-temp b/patches/refresh-temp
new file mode 100644 (file)
index 0000000..3a25886
--- /dev/null
@@ -0,0 +1,92 @@
+Bottom: 87ab98f3bddaca811ce2dc2b7920287c23686a20
+Top:    82e13151ae7719d96c8c400a99918961bc514175
+Author: Sean Hefty <sean.hefty@intel.com>
+Date:   2012-05-28 01:13:57 -0700
+
+Refresh of rs-states
+
+---
+
+diff --git a/src/rsocket.c b/src/rsocket.c
+index 1140975..9ce58d5 100644
+--- a/src/rsocket.c
++++ b/src/rsocket.c
+@@ -126,6 +126,9 @@ union rs_wr_id {
+       };
+ };
++/*
++ * rsocket states are ordered as passive, connecting, connected, disconnected.
++ */
+ enum rs_state {
+       rs_init,
+       rs_bound,
+@@ -134,9 +137,9 @@ enum rs_state {
+       rs_resolving_route,
+       rs_connecting,
+       rs_accepting,
++      rs_connect_error,
+       rs_connected,
+       rs_disconnected,
+-      rs_connect_error,
+       rs_error
+ };
+@@ -1011,9 +1014,7 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags)
+       int ret;
+       rs = idm_at(&idm, socket);
+-      if (rs->state != rs_connected &&
+-          (rs->state == rs_resolving_addr || rs->state == rs_resolving_route ||
+-           rs->state == rs_connecting || rs->state == rs_accepting)) {
++      if (rs->state < rs_connected) {
+               ret = rs_do_connect(rs);
+               if (ret) {
+                       if (errno == EINPROGRESS)
+@@ -1115,7 +1116,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags)
+       int ret = 0;
+       rs = idm_at(&idm, socket);
+-      if (rs->state != rs_connected) {
++      if (rs->state < rs_connected) {
+               ret = rs_do_connect(rs);
+               if (ret) {
+                       if (errno == EINPROGRESS)
+@@ -1219,7 +1220,7 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags
+       int i, ret = 0;
+       rs = idm_at(&idm, socket);
+-      if (rs->state != rs_connected) {
++      if (rs->state < rs_connected) {
+               ret = rs_do_connect(rs);
+               if (ret) {
+                       if (errno == EINPROGRESS)
+@@ -1360,7 +1361,7 @@ static int rs_poll_rs(struct rsocket *rs, int events,
+                       revents |= POLLOUT;
+               if (rs->state == rs_disconnected)
+                       revents |= POLLHUP;
+-              if (rs->state == rs_error)
++              else if (rs->state == rs_error)
+                       revents |= POLLERR;
+               return revents;
+@@ -1401,16 +1402,11 @@ static int rs_poll_arm(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds)
+                       if (fds[i].revents)
+                               return 1;
+-                      switch (rs->state) {
+-                      case rs_connected:
+-                      case rs_disconnected:
+-                      case rs_error:
++                      if (rs->state >= rs_connected)
+                               rfds[i].fd = rs->cm_id->recv_cq_channel->fd;
+-                              break;
+-                      default:
++                      else
+                               rfds[i].fd = rs->cm_id->channel->fd;
+-                              break;
+-                      }
++
+                       rfds[i].events = POLLIN;
+               } else {
+                       rfds[i].fd = fds[i].fd;