From 2c9b217c2919e0135a4718d91a8be010067a6f28 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Sun, 27 May 2012 23:55:11 -0700 Subject: [PATCH] Refresh of rs-1sge --- src/rsocket.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/rsocket.c b/src/rsocket.c index 529c3b0b..e480bfdf 100644 --- a/src/rsocket.c +++ b/src/rsocket.c @@ -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; -- 2.45.2