From 17fa65e2ad2680ab925b0038f6c1e7b2fa136983 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Fri, 7 Dec 2012 17:01:28 -0800 Subject: [PATCH] refresh --- meta | 7 +-- patches/dsocket | 146 +++++++++++++++++++++++++------------------ patches/refresh-temp | 51 --------------- 3 files changed, 88 insertions(+), 116 deletions(-) delete mode 100644 patches/refresh-temp diff --git a/meta b/meta index cdc57738..941359e8 100644 --- a/meta +++ b/meta @@ -1,9 +1,8 @@ Version: 1 -Previous: 603b52016b4c0417d17ba16b28f2fb228862b144 -Head: 2b744849213f057983fe1a297b924cd5461abd87 +Previous: 0dbe6dda77562850e0f9968a9d9fc17a9b817d53 +Head: 017c83e85700bb3411fe7abd46eeeae229ac6012 Applied: - dsocket: ad3be3a08de1c984c85f2f44d953894f30d279f6 - refresh-temp: 2b744849213f057983fe1a297b924cd5461abd87 + dsocket: 017c83e85700bb3411fe7abd46eeeae229ac6012 Unapplied: udpong: 87e18a2dc15e31fa2ef06b729a0142c1c7354e4a test-udp: f6c78ad2a26f452cf166aff1baa7b76160bd8bf7 diff --git a/patches/dsocket b/patches/dsocket index eb3cadc1..e435f223 100644 --- a/patches/dsocket +++ b/patches/dsocket @@ -1,5 +1,5 @@ Bottom: 1fa07c62817ac4b6cb8d9c5e327ea2cdc75dbd21 -Top: ae4df7b46b3d1c519383a31cb018c70f3e4e8201 +Top: a927494883404a78f78c17da5df3f0065d13f8cb Author: Sean Hefty Date: 2012-11-09 10:26:38 -0800 @@ -112,7 +112,7 @@ index 0a0370e..7135a61 100644 { errno = err; diff --git a/src/rsocket.c b/src/rsocket.c -index a060f66..9996d33 100644 +index a060f66..f35abeb 100644 --- a/src/rsocket.c +++ b/src/rsocket.c @@ -47,6 +47,8 @@ @@ -374,12 +374,12 @@ index a060f66..9996d33 100644 - void *target_buffer_list; - volatile struct rs_sge *target_sgl; - struct rs_iomap *target_iomap; -+#define DS_UDP_TAG 0x55555555 - +- - uint32_t rbuf_size; - struct ibv_mr *rmr; - uint8_t *rbuf; -- ++#define DS_UDP_TAG 0x55555555 + - uint32_t sbuf_size; - struct ibv_mr *smr; - struct ibv_sge ssgl[2]; @@ -521,19 +521,43 @@ index a060f66..9996d33 100644 { struct rsocket *rs; -@@ -330,7 +552,11 @@ static struct rsocket *rs_alloc(struct rsocket *inherited_rs) +@@ -330,29 +552,39 @@ static struct rsocket *rs_alloc(struct rsocket *inherited_rs) if (!rs) return NULL; + rs->type = type; rs->index = -1; -+ rs->udp_sock = -1; -+ rs->epfd = -1; ++ if (type == SOCK_DGRAM) { ++ rs->udp_sock = -1; ++ rs->epfd = -1; ++ } + if (inherited_rs) { rs->sbuf_size = inherited_rs->sbuf_size; rs->rbuf_size = inherited_rs->rbuf_size; -@@ -352,7 +578,7 @@ static struct rsocket *rs_alloc(struct rsocket *inherited_rs) + rs->sq_inline = inherited_rs->sq_inline; + rs->sq_size = inherited_rs->sq_size; + rs->rq_size = inherited_rs->rq_size; +- rs->ctrl_avail = inherited_rs->ctrl_avail; +- rs->target_iomap_size = inherited_rs->target_iomap_size; ++ if (type == SOCK_STREAM) { ++ rs->ctrl_avail = inherited_rs->ctrl_avail; ++ rs->target_iomap_size = inherited_rs->target_iomap_size; ++ } + } else { + rs->sbuf_size = def_wmem; + rs->rbuf_size = def_mem; + rs->sq_inline = def_inline; + rs->sq_size = def_sqsize; + rs->rq_size = def_rqsize; +- rs->ctrl_avail = RS_QP_CTRL_SIZE; +- rs->target_iomap_size = def_iomap_size; ++ if (type == SOCK_STREAM) { ++ rs->ctrl_avail = RS_QP_CTRL_SIZE; ++ rs->target_iomap_size = def_iomap_size; ++ } + } + fastlock_init(&rs->slock); fastlock_init(&rs->rlock); fastlock_init(&rs->cq_lock); fastlock_init(&rs->cq_wait_lock); @@ -542,7 +566,7 @@ index a060f66..9996d33 100644 dlist_init(&rs->iomap_list); dlist_init(&rs->iomap_queue); return rs; -@@ -360,13 +586,27 @@ static struct rsocket *rs_alloc(struct rsocket *inherited_rs) +@@ -360,13 +592,27 @@ static struct rsocket *rs_alloc(struct rsocket *inherited_rs) static int rs_set_nonblocking(struct rsocket *rs, long arg) { @@ -574,7 +598,7 @@ index a060f66..9996d33 100644 return ret; } -@@ -390,17 +630,39 @@ static void rs_set_qp_size(struct rsocket *rs) +@@ -390,17 +636,39 @@ static void rs_set_qp_size(struct rsocket *rs) rs->rq_size = 2; } @@ -616,7 +640,7 @@ index a060f66..9996d33 100644 rs->smr = rdma_reg_msgs(rs->cm_id, rs->sbuf, rs->sbuf_size); if (!rs->smr) -@@ -410,7 +672,7 @@ static int rs_init_bufs(struct rsocket *rs) +@@ -410,7 +678,7 @@ static int rs_init_bufs(struct rsocket *rs) sizeof(*rs->target_iomap) * rs->target_iomap_size; rs->target_buffer_list = malloc(len); if (!rs->target_buffer_list) @@ -625,7 +649,7 @@ index a060f66..9996d33 100644 rs->target_mr = rdma_reg_write(rs->cm_id, rs->target_buffer_list, len); if (!rs->target_mr) -@@ -423,7 +685,7 @@ static int rs_init_bufs(struct rsocket *rs) +@@ -423,7 +691,7 @@ static int rs_init_bufs(struct rsocket *rs) rs->rbuf = calloc(rs->rbuf_size, sizeof(*rs->rbuf)); if (!rs->rbuf) @@ -634,7 +658,7 @@ index a060f66..9996d33 100644 rs->rmr = rdma_reg_write(rs->cm_id, rs->rbuf, rs->rbuf_size); if (!rs->rmr) -@@ -440,15 +702,32 @@ static int rs_init_bufs(struct rsocket *rs) +@@ -440,15 +708,32 @@ static int rs_init_bufs(struct rsocket *rs) return 0; } @@ -673,7 +697,7 @@ index a060f66..9996d33 100644 goto err1; if (rs->fd_flags & O_NONBLOCK) { -@@ -456,21 +735,20 @@ static int rs_create_cq(struct rsocket *rs) +@@ -456,21 +741,20 @@ static int rs_create_cq(struct rsocket *rs) goto err2; } @@ -702,7 +726,7 @@ index a060f66..9996d33 100644 { struct ibv_recv_wr wr, *bad; -@@ -482,6 +760,23 @@ rs_post_recv(struct rsocket *rs) +@@ -482,6 +766,23 @@ rs_post_recv(struct rsocket *rs) return rdma_seterrno(ibv_post_recv(rs->cm_id->qp, &wr, &bad)); } @@ -726,7 +750,7 @@ index a060f66..9996d33 100644 static int rs_create_ep(struct rsocket *rs) { struct ibv_qp_init_attr qp_attr; -@@ -492,7 +787,7 @@ static int rs_create_ep(struct rsocket *rs) +@@ -492,7 +793,7 @@ static int rs_create_ep(struct rsocket *rs) if (ret) return ret; @@ -735,7 +759,7 @@ index a060f66..9996d33 100644 if (ret) return ret; -@@ -549,8 +844,74 @@ static void rs_free_iomappings(struct rsocket *rs) +@@ -549,8 +850,74 @@ static void rs_free_iomappings(struct rsocket *rs) } } @@ -810,7 +834,7 @@ index a060f66..9996d33 100644 if (rs->index >= 0) rs_remove(rs); -@@ -582,7 +943,7 @@ static void rs_free(struct rsocket *rs) +@@ -582,7 +949,7 @@ static void rs_free(struct rsocket *rs) rdma_destroy_id(rs->cm_id); } @@ -819,7 +843,7 @@ index a060f66..9996d33 100644 fastlock_destroy(&rs->cq_wait_lock); fastlock_destroy(&rs->cq_lock); fastlock_destroy(&rs->rlock); -@@ -636,29 +997,54 @@ static void rs_save_conn_data(struct rsocket *rs, struct rs_conn_data *conn) +@@ -636,29 +1003,54 @@ static void rs_save_conn_data(struct rsocket *rs, struct rs_conn_data *conn) rs->sseq_comp = ntohs(conn->credits); } @@ -862,7 +886,8 @@ index a060f66..9996d33 100644 + ret = rdma_create_id(NULL, &rs->cm_id, rs, RDMA_PS_TCP); + if (ret) + goto err; -+ + +- ret = rs_insert(rs); + rs->cm_id->route.addr.src_addr.sa_family = domain; + index = rs->cm_id->channel->fd; + } else { @@ -872,8 +897,7 @@ index a060f66..9996d33 100644 + + index = rs->udp_sock; + } - -- ret = rs_insert(rs); ++ + ret = rs_insert(rs, index); if (ret < 0) goto err; @@ -882,7 +906,7 @@ index a060f66..9996d33 100644 return rs->index; err: -@@ -672,9 +1058,18 @@ int rbind(int socket, const struct sockaddr *addr, socklen_t addrlen) +@@ -672,9 +1064,18 @@ int rbind(int socket, const struct sockaddr *addr, socklen_t addrlen) int ret; rs = idm_at(&idm, socket); @@ -904,7 +928,7 @@ index a060f66..9996d33 100644 return ret; } -@@ -710,7 +1105,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen) +@@ -710,7 +1111,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen) int ret; rs = idm_at(&idm, socket); @@ -913,7 +937,7 @@ index a060f66..9996d33 100644 if (!new_rs) return ERR(ENOMEM); -@@ -718,7 +1113,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen) +@@ -718,7 +1119,7 @@ int raccept(int socket, struct sockaddr *addr, socklen_t *addrlen) if (ret) goto err; @@ -922,7 +946,7 @@ index a060f66..9996d33 100644 if (ret < 0) goto err; -@@ -855,13 +1250,268 @@ connected: +@@ -855,13 +1256,268 @@ connected: return ret; } @@ -1193,7 +1217,7 @@ index a060f66..9996d33 100644 } static int rs_post_write_msg(struct rsocket *rs, -@@ -903,6 +1553,24 @@ static int rs_post_write(struct rsocket *rs, +@@ -903,6 +1559,24 @@ static int rs_post_write(struct rsocket *rs, return rdma_seterrno(ibv_post_send(rs->cm_id->qp, &wr, &bad)); } @@ -1218,7 +1242,7 @@ index a060f66..9996d33 100644 /* * Update target SGE before sending data. Otherwise the remote side may * update the entry before we do. -@@ -1046,7 +1714,7 @@ static int rs_poll_cq(struct rsocket *rs) +@@ -1046,7 +1720,7 @@ static int rs_poll_cq(struct rsocket *rs) rs->state = rs_disconnected; return 0; } else if (rs_msg_data(imm_data) == RS_CTRL_SHUTDOWN) { @@ -1227,7 +1251,7 @@ index a060f66..9996d33 100644 } break; case RS_OP_WRITE: -@@ -1133,46 +1801,205 @@ static int rs_get_cq_event(struct rsocket *rs) +@@ -1133,46 +1807,205 @@ static int rs_get_cq_event(struct rsocket *rs) */ static int rs_process_cq(struct rsocket *rs, int nonblock, int (*test)(struct rsocket *rs)) { @@ -1443,7 +1467,7 @@ index a060f66..9996d33 100644 if (!ret || nonblock || errno != EWOULDBLOCK) return ret; -@@ -1184,7 +2011,7 @@ static int rs_get_comp(struct rsocket *rs, int nonblock, int (*test)(struct rsoc +@@ -1184,7 +2017,7 @@ static int rs_get_comp(struct rsocket *rs, int nonblock, int (*test)(struct rsoc (e.tv_usec - s.tv_usec) + 1; } while (poll_time <= polling_time); @@ -1452,7 +1476,7 @@ index a060f66..9996d33 100644 return ret; } -@@ -1219,9 +2046,19 @@ static int rs_can_send(struct rsocket *rs) +@@ -1219,9 +2052,19 @@ static int rs_can_send(struct rsocket *rs) (rs->target_sgl[rs->target_sge].length != 0); } @@ -1473,7 +1497,7 @@ index a060f66..9996d33 100644 } static int rs_conn_can_send_ctrl(struct rsocket *rs) -@@ -1236,7 +2073,7 @@ static int rs_have_rdata(struct rsocket *rs) +@@ -1236,7 +2079,7 @@ static int rs_have_rdata(struct rsocket *rs) static int rs_conn_have_rdata(struct rsocket *rs) { @@ -1482,7 +1506,7 @@ index a060f66..9996d33 100644 } static int rs_conn_all_sends_done(struct rsocket *rs) -@@ -1245,6 +2082,66 @@ static int rs_conn_all_sends_done(struct rsocket *rs) +@@ -1245,6 +2088,66 @@ static int rs_conn_all_sends_done(struct rsocket *rs) !(rs->state & rs_connected); } @@ -1549,7 +1573,7 @@ index a060f66..9996d33 100644 static ssize_t rs_peek(struct rsocket *rs, void *buf, size_t len) { size_t left = len; -@@ -1290,6 +2187,13 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags) +@@ -1290,6 +2193,13 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags) int ret; rs = idm_at(&idm, socket); @@ -1563,7 +1587,7 @@ index a060f66..9996d33 100644 if (rs->state & rs_opening) { ret = rs_do_connect(rs); if (ret) { -@@ -1339,7 +2243,7 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags) +@@ -1339,7 +2249,7 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags) rs->rbuf_bytes_avail += rsize; } @@ -1572,7 +1596,7 @@ index a060f66..9996d33 100644 fastlock_release(&rs->rlock); return ret ? ret : len - left; -@@ -1348,8 +2252,17 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags) +@@ -1348,8 +2258,17 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags) ssize_t rrecvfrom(int socket, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen) { @@ -1590,7 +1614,7 @@ index a060f66..9996d33 100644 ret = rrecv(socket, buf, len, flags); if (ret > 0 && src_addr) rgetpeername(socket, src_addr, addrlen); -@@ -1391,14 +2304,14 @@ static int rs_send_iomaps(struct rsocket *rs, int flags) +@@ -1391,14 +2310,14 @@ static int rs_send_iomaps(struct rsocket *rs, int flags) struct rs_iomap iom; int ret; @@ -1607,7 +1631,7 @@ index a060f66..9996d33 100644 ret = ERR(ECONNRESET); break; } -@@ -1447,10 +2360,90 @@ static int rs_send_iomaps(struct rsocket *rs, int flags) +@@ -1447,10 +2366,90 @@ static int rs_send_iomaps(struct rsocket *rs, int flags) } rs->iomap_pending = !dlist_empty(&rs->iomap_queue); @@ -1699,7 +1723,7 @@ index a060f66..9996d33 100644 /* * We overlap sending the data, by posting a small work request immediately, * then increasing the size of the send on each iteration. -@@ -1464,6 +2457,13 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) +@@ -1464,6 +2463,13 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) int ret = 0; rs = idm_at(&idm, socket); @@ -1713,7 +1737,7 @@ index a060f66..9996d33 100644 if (rs->state & rs_opening) { ret = rs_do_connect(rs); if (ret) { -@@ -1485,7 +2485,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) +@@ -1485,7 +2491,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) rs_conn_can_send); if (ret) break; @@ -1722,7 +1746,7 @@ index a060f66..9996d33 100644 ret = ERR(ECONNRESET); break; } -@@ -1538,10 +2538,27 @@ out: +@@ -1538,10 +2544,27 @@ out: ssize_t rsendto(int socket, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen) { @@ -1753,7 +1777,7 @@ index a060f66..9996d33 100644 } static void rs_copy_iov(void *dst, const struct iovec **iov, size_t *offset, size_t len) -@@ -1600,7 +2617,7 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags +@@ -1600,7 +2623,7 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags rs_conn_can_send); if (ret) break; @@ -1762,7 +1786,7 @@ index a060f66..9996d33 100644 ret = ERR(ECONNRESET); break; } -@@ -1653,7 +2670,7 @@ ssize_t rsendmsg(int socket, const struct msghdr *msg, int flags) +@@ -1653,7 +2676,7 @@ ssize_t rsendmsg(int socket, const struct msghdr *msg, int flags) if (msg->msg_control && msg->msg_controllen) return ERR(ENOTSUP); @@ -1771,7 +1795,7 @@ index a060f66..9996d33 100644 } ssize_t rwrite(int socket, const void *buf, size_t count) -@@ -1690,8 +2707,8 @@ static int rs_poll_rs(struct rsocket *rs, int events, +@@ -1690,8 +2713,8 @@ static int rs_poll_rs(struct rsocket *rs, int events, int ret; check_cq: @@ -1782,7 +1806,7 @@ index a060f66..9996d33 100644 rs_process_cq(rs, nonblock, test); revents = 0; -@@ -1707,6 +2724,16 @@ check_cq: +@@ -1707,6 +2730,16 @@ check_cq: } return revents; @@ -1799,7 +1823,7 @@ index a060f66..9996d33 100644 } if (rs->state == rs_listening) { -@@ -1766,11 +2793,14 @@ static int rs_poll_arm(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds) +@@ -1766,11 +2799,14 @@ static int rs_poll_arm(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds) if (fds[i].revents) return 1; @@ -1819,7 +1843,7 @@ index a060f66..9996d33 100644 rfds[i].events = POLLIN; } else { rfds[i].fd = fds[i].fd; -@@ -1793,7 +2823,10 @@ static int rs_poll_events(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds) +@@ -1793,7 +2829,10 @@ static int rs_poll_events(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds) rs = idm_lookup(&idm, fds[i].fd); if (rs) { @@ -1831,7 +1855,7 @@ index a060f66..9996d33 100644 fds[i].revents = rs_poll_rs(rs, fds[i].events, 1, rs_poll_all); } else { fds[i].revents = rfds[i].revents; -@@ -1949,7 +2982,7 @@ int rshutdown(int socket, int how) +@@ -1949,7 +2988,7 @@ int rshutdown(int socket, int how) rs = idm_at(&idm, socket); if (how == SHUT_RD) { @@ -1840,7 +1864,7 @@ index a060f66..9996d33 100644 return 0; } -@@ -1959,10 +2992,10 @@ int rshutdown(int socket, int how) +@@ -1959,10 +2998,10 @@ int rshutdown(int socket, int how) if (rs->state & rs_connected) { if (how == SHUT_RDWR) { ctrl = RS_CTRL_DISCONNECT; @@ -1854,7 +1878,7 @@ index a060f66..9996d33 100644 RS_CTRL_SHUTDOWN : RS_CTRL_DISCONNECT; } if (!rs->ctrl_avail) { -@@ -1987,13 +3020,29 @@ int rshutdown(int socket, int how) +@@ -1987,13 +3026,29 @@ int rshutdown(int socket, int how) return 0; } @@ -1886,7 +1910,7 @@ index a060f66..9996d33 100644 rs_free(rs); return 0; -@@ -2018,8 +3067,12 @@ int rgetpeername(int socket, struct sockaddr *addr, socklen_t *addrlen) +@@ -2018,8 +3073,12 @@ int rgetpeername(int socket, struct sockaddr *addr, socklen_t *addrlen) struct rsocket *rs; rs = idm_at(&idm, socket); @@ -1901,7 +1925,7 @@ index a060f66..9996d33 100644 } int rgetsockname(int socket, struct sockaddr *addr, socklen_t *addrlen) -@@ -2027,8 +3080,12 @@ int rgetsockname(int socket, struct sockaddr *addr, socklen_t *addrlen) +@@ -2027,8 +3086,12 @@ int rgetsockname(int socket, struct sockaddr *addr, socklen_t *addrlen) struct rsocket *rs; rs = idm_at(&idm, socket); @@ -1916,7 +1940,7 @@ index a060f66..9996d33 100644 } int rsetsockopt(int socket, int level, int optname, -@@ -2040,18 +3097,26 @@ int rsetsockopt(int socket, int level, int optname, +@@ -2040,18 +3103,26 @@ int rsetsockopt(int socket, int level, int optname, ret = ERR(ENOTSUP); rs = idm_at(&idm, socket); @@ -1950,7 +1974,7 @@ index a060f66..9996d33 100644 opt_on = *(int *) optval; break; case SO_RCVBUF: -@@ -2101,9 +3166,11 @@ int rsetsockopt(int socket, int level, int optname, +@@ -2101,9 +3172,11 @@ int rsetsockopt(int socket, int level, int optname, opts = &rs->ipv6_opts; switch (optname) { case IPV6_V6ONLY: @@ -1965,7 +1989,7 @@ index a060f66..9996d33 100644 opt_on = *(int *) optval; break; default: -@@ -2315,7 +3382,7 @@ off_t riomap(int socket, void *buf, size_t len, int prot, int flags, off_t offse +@@ -2315,7 +3388,7 @@ off_t riomap(int socket, void *buf, size_t len, int prot, int flags, off_t offse if (!rs->cm_id->pd || (prot & ~(PROT_WRITE | PROT_NONE))) return ERR(EINVAL); @@ -1974,7 +1998,7 @@ index a060f66..9996d33 100644 if (prot & PROT_WRITE) { iomr = rs_get_iomap_mr(rs); access |= IBV_ACCESS_REMOTE_WRITE; -@@ -2349,7 +3416,7 @@ off_t riomap(int socket, void *buf, size_t len, int prot, int flags, off_t offse +@@ -2349,7 +3422,7 @@ off_t riomap(int socket, void *buf, size_t len, int prot, int flags, off_t offse dlist_insert_tail(&iomr->entry, &rs->iomap_list); } out: @@ -1983,7 +2007,7 @@ index a060f66..9996d33 100644 return offset; } -@@ -2361,7 +3428,7 @@ int riounmap(int socket, void *buf, size_t len) +@@ -2361,7 +3434,7 @@ int riounmap(int socket, void *buf, size_t len) int ret = 0; rs = idm_at(&idm, socket); @@ -1992,7 +2016,7 @@ index a060f66..9996d33 100644 for (entry = rs->iomap_list.next; entry != &rs->iomap_list; entry = entry->next) { -@@ -2382,7 +3449,7 @@ int riounmap(int socket, void *buf, size_t len) +@@ -2382,7 +3455,7 @@ int riounmap(int socket, void *buf, size_t len) } ret = ERR(EINVAL); out: @@ -2001,7 +2025,7 @@ index a060f66..9996d33 100644 return ret; } -@@ -2426,7 +3493,7 @@ size_t riowrite(int socket, const void *buf, size_t count, off_t offset, int fla +@@ -2426,7 +3499,7 @@ size_t riowrite(int socket, const void *buf, size_t count, off_t offset, int fla rs_conn_can_send); if (ret) break; @@ -2010,7 +2034,7 @@ index a060f66..9996d33 100644 ret = ERR(ECONNRESET); break; } -@@ -2476,3 +3543,269 @@ out: +@@ -2476,3 +3549,269 @@ out: return (ret && left == count) ? ret : count - left; } diff --git a/patches/refresh-temp b/patches/refresh-temp deleted file mode 100644 index 51cbadde..00000000 --- a/patches/refresh-temp +++ /dev/null @@ -1,51 +0,0 @@ -Bottom: ae4df7b46b3d1c519383a31cb018c70f3e4e8201 -Top: a927494883404a78f78c17da5df3f0065d13f8cb -Author: Sean Hefty -Date: 2012-12-07 17:01:27 -0800 - -Refresh of dsocket - ---- - -diff --git a/src/rsocket.c b/src/rsocket.c -index 9996d33..f35abeb 100644 ---- a/src/rsocket.c -+++ b/src/rsocket.c -@@ -554,8 +554,10 @@ static struct rsocket *rs_alloc(struct rsocket *inherited_rs, int type) - - rs->type = type; - rs->index = -1; -- rs->udp_sock = -1; -- rs->epfd = -1; -+ if (type == SOCK_DGRAM) { -+ rs->udp_sock = -1; -+ rs->epfd = -1; -+ } - - if (inherited_rs) { - rs->sbuf_size = inherited_rs->sbuf_size; -@@ -563,16 +565,20 @@ static struct rsocket *rs_alloc(struct rsocket *inherited_rs, int type) - rs->sq_inline = inherited_rs->sq_inline; - rs->sq_size = inherited_rs->sq_size; - rs->rq_size = inherited_rs->rq_size; -- rs->ctrl_avail = inherited_rs->ctrl_avail; -- rs->target_iomap_size = inherited_rs->target_iomap_size; -+ if (type == SOCK_STREAM) { -+ rs->ctrl_avail = inherited_rs->ctrl_avail; -+ rs->target_iomap_size = inherited_rs->target_iomap_size; -+ } - } else { - rs->sbuf_size = def_wmem; - rs->rbuf_size = def_mem; - rs->sq_inline = def_inline; - rs->sq_size = def_sqsize; - rs->rq_size = def_rqsize; -- rs->ctrl_avail = RS_QP_CTRL_SIZE; -- rs->target_iomap_size = def_iomap_size; -+ if (type == SOCK_STREAM) { -+ rs->ctrl_avail = RS_QP_CTRL_SIZE; -+ rs->target_iomap_size = def_iomap_size; -+ } - } - fastlock_init(&rs->slock); - fastlock_init(&rs->rlock); -- 2.46.0