]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
Refresh of rs-1sge
authorSean Hefty <sean.hefty@intel.com>
Mon, 28 May 2012 06:55:11 +0000 (23:55 -0700)
committerSean Hefty <sean.hefty@intel.com>
Mon, 28 May 2012 06:55:11 +0000 (23:55 -0700)
src/rsocket.c

index 529c3b0bfd96bea7a9393e8cd88f982a59fd8c6d..e480bfdfce73301fb802644932a1fb0e84961571 100644 (file)
@@ -1128,8 +1128,12 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags)
                        xfer_size = rs->sbuf_bytes_avail;
                if (xfer_size > rs->target_sgl[rs->target_sge].length)
                        xfer_size = rs->target_sgl[rs->target_sge].length;
-               if (xfer_size > rs_sbuf_left(rs))
-                       xfer_size = rs_sbuf_left(rs);
+               if (xfer_size > rs_sbuf_left(rs)) {
+                       if (xfer_size <= rs->sbuf_bytes_avail - rs_sbuf(left(rs)))
+                               rs->ssge.addr = (uintptr_t) rs->sbuf;
+                       else
+                               xfer_size = rs_sbuf_left(rs);
+               }
 
                if (xfer_size <= rs->sq_inline) {
                        sge.addr = (uintptr_t) buf;