svn commit: r264037 - in projects/sendfile/sys: netinet ofed/drivers/infiniband/ulp/sdp rpc
Gleb Smirnoff
glebius at FreeBSD.org
Wed Apr 2 10:57:12 UTC 2014
Author: glebius
Date: Wed Apr 2 10:57:11 2014
New Revision: 264037
URL: http://svnweb.freebsd.org/changeset/base/264037
Log:
Fixes for SIFTR, InfiniBand and RPC to use sbused()/sbavail()
instead of sb_cc.
Modified:
projects/sendfile/sys/netinet/siftr.c
projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c
projects/sendfile/sys/rpc/clnt_vc.c
projects/sendfile/sys/rpc/svc_vc.c
Modified: projects/sendfile/sys/netinet/siftr.c
==============================================================================
--- projects/sendfile/sys/netinet/siftr.c Wed Apr 2 10:38:41 2014 (r264036)
+++ projects/sendfile/sys/netinet/siftr.c Wed Apr 2 10:57:11 2014 (r264037)
@@ -781,9 +781,9 @@ siftr_siftdata(struct pkt_node *pn, stru
pn->flags = tp->t_flags;
pn->rxt_length = tp->t_rxtcur;
pn->snd_buf_hiwater = inp->inp_socket->so_snd.sb_hiwat;
- pn->snd_buf_cc = inp->inp_socket->so_snd.sb_cc;
+ pn->snd_buf_cc = sbused(&inp->inp_socket->so_snd);
pn->rcv_buf_hiwater = inp->inp_socket->so_rcv.sb_hiwat;
- pn->rcv_buf_cc = inp->inp_socket->so_rcv.sb_cc;
+ pn->rcv_buf_cc = sbused(&inp->inp_socket->so_rcv);
pn->sent_inflight_bytes = tp->snd_max - tp->snd_una;
pn->t_segqlen = tp->t_segqlen;
Modified: projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c
==============================================================================
--- projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c Wed Apr 2 10:38:41 2014 (r264036)
+++ projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c Wed Apr 2 10:57:11 2014 (r264037)
@@ -746,7 +746,7 @@ sdp_start_disconnect(struct sdp_sock *ss
("sdp_start_disconnect: sdp_drop() returned NULL"));
} else {
soisdisconnecting(so);
- unread = so->so_rcv.sb_cc;
+ unread = sbused(&so->so_rcv);
sbflush(&so->so_rcv);
sdp_usrclosed(ssk);
if (!(ssk->flags & SDP_DROPPED)) {
@@ -888,7 +888,7 @@ sdp_append(struct sdp_sock *ssk, struct
m_adj(mb, SDP_HEAD_SIZE);
n->m_pkthdr.len += mb->m_pkthdr.len;
n->m_flags |= mb->m_flags & (M_PUSH | M_URG);
- m_demote(mb, 1);
+ m_demote(mb, 1, 0);
sbcompress(sb, mb, sb->sb_mbtail);
return;
}
@@ -1258,7 +1258,7 @@ sdp_sorecv(struct socket *so, struct soc
/* We will never ever get anything unless we are connected. */
if (!(so->so_state & (SS_ISCONNECTED|SS_ISDISCONNECTED))) {
/* When disconnecting there may be still some data left. */
- if (sb->sb_cc > 0)
+ if (sbavail(sb))
goto deliver;
if (!(so->so_state & SS_ISDISCONNECTED))
error = ENOTCONN;
@@ -1266,7 +1266,7 @@ sdp_sorecv(struct socket *so, struct soc
}
/* Socket buffer is empty and we shall not block. */
- if (sb->sb_cc == 0 &&
+ if (sbavail(sb) == 0 &&
((so->so_state & SS_NBIO) || (flags & (MSG_DONTWAIT|MSG_NBIO)))) {
error = EAGAIN;
goto out;
@@ -1277,7 +1277,7 @@ restart:
/* Abort if socket has reported problems. */
if (so->so_error) {
- if (sb->sb_cc > 0)
+ if (sbavail(sb))
goto deliver;
if (oresid > uio->uio_resid)
goto out;
@@ -1289,25 +1289,25 @@ restart:
/* Door is closed. Deliver what is left, if any. */
if (sb->sb_state & SBS_CANTRCVMORE) {
- if (sb->sb_cc > 0)
+ if (sbavail(sb))
goto deliver;
else
goto out;
}
/* Socket buffer got some data that we shall deliver now. */
- if (sb->sb_cc > 0 && !(flags & MSG_WAITALL) &&
+ if (sbavail(sb) && !(flags & MSG_WAITALL) &&
((so->so_state & SS_NBIO) ||
(flags & (MSG_DONTWAIT|MSG_NBIO)) ||
- sb->sb_cc >= sb->sb_lowat ||
- sb->sb_cc >= uio->uio_resid ||
- sb->sb_cc >= sb->sb_hiwat) ) {
+ sbavail(sb) >= sb->sb_lowat ||
+ sbavail(sb) >= uio->uio_resid ||
+ sbavail(sb) >= sb->sb_hiwat) ) {
goto deliver;
}
/* On MSG_WAITALL we must wait until all data or error arrives. */
if ((flags & MSG_WAITALL) &&
- (sb->sb_cc >= uio->uio_resid || sb->sb_cc >= sb->sb_lowat))
+ (sbavail(sb) >= uio->uio_resid || sbavail(sb) >= sb->sb_lowat))
goto deliver;
/*
@@ -1321,7 +1321,7 @@ restart:
deliver:
SOCKBUF_LOCK_ASSERT(&so->so_rcv);
- KASSERT(sb->sb_cc > 0, ("%s: sockbuf empty", __func__));
+ KASSERT(sbavail(sb), ("%s: sockbuf empty", __func__));
KASSERT(sb->sb_mb != NULL, ("%s: sb_mb == NULL", __func__));
/* Statistics. */
@@ -1329,7 +1329,7 @@ deliver:
uio->uio_td->td_ru.ru_msgrcv++;
/* Fill uio until full or current end of socket buffer is reached. */
- len = min(uio->uio_resid, sb->sb_cc);
+ len = min(uio->uio_resid, sbavail(sb));
if (mp0 != NULL) {
/* Dequeue as many mbufs as possible. */
if (!(flags & MSG_PEEK) && len >= sb->sb_mb->m_len) {
@@ -1509,7 +1509,7 @@ sdp_urg(struct sdp_sock *ssk, struct mbu
if (so == NULL)
return;
- so->so_oobmark = so->so_rcv.sb_cc + mb->m_pkthdr.len - 1;
+ so->so_oobmark = sbused(&so->so_rcv) + mb->m_pkthdr.len - 1;
sohasoutofband(so);
ssk->oobflags &= ~(SDP_HAVEOOB | SDP_HADOOB);
if (!(so->so_options & SO_OOBINLINE)) {
Modified: projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c
==============================================================================
--- projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c Wed Apr 2 10:38:41 2014 (r264036)
+++ projects/sendfile/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c Wed Apr 2 10:57:11 2014 (r264037)
@@ -183,7 +183,7 @@ sdp_post_recvs_needed(struct sdp_sock *s
* Compute bytes in the receive queue and socket buffer.
*/
bytes_in_process = (posted - SDP_MIN_TX_CREDITS) * buffer_size;
- bytes_in_process += ssk->socket->so_rcv.sb_cc;
+ bytes_in_process += sbused(&ssk->socket->so_rcv);
return bytes_in_process < max_bytes;
}
Modified: projects/sendfile/sys/rpc/clnt_vc.c
==============================================================================
--- projects/sendfile/sys/rpc/clnt_vc.c Wed Apr 2 10:38:41 2014 (r264036)
+++ projects/sendfile/sys/rpc/clnt_vc.c Wed Apr 2 10:57:11 2014 (r264037)
@@ -862,7 +862,7 @@ clnt_vc_soupcall(struct socket *so, void
* error condition
*/
do_read = FALSE;
- if (so->so_rcv.sb_cc >= sizeof(uint32_t)
+ if (sbavail(&so->so_rcv) >= sizeof(uint32_t)
|| (so->so_rcv.sb_state & SBS_CANTRCVMORE)
|| so->so_error)
do_read = TRUE;
@@ -915,7 +915,7 @@ clnt_vc_soupcall(struct socket *so, void
* buffered.
*/
do_read = FALSE;
- if (so->so_rcv.sb_cc >= ct->ct_record_resid
+ if (sbavail(&so->so_rcv) >= ct->ct_record_resid
|| (so->so_rcv.sb_state & SBS_CANTRCVMORE)
|| so->so_error)
do_read = TRUE;
Modified: projects/sendfile/sys/rpc/svc_vc.c
==============================================================================
--- projects/sendfile/sys/rpc/svc_vc.c Wed Apr 2 10:38:41 2014 (r264036)
+++ projects/sendfile/sys/rpc/svc_vc.c Wed Apr 2 10:57:11 2014 (r264037)
@@ -546,7 +546,7 @@ svc_vc_ack(SVCXPRT *xprt, uint32_t *ack)
{
*ack = atomic_load_acq_32(&xprt->xp_snt_cnt);
- *ack -= xprt->xp_socket->so_snd.sb_cc;
+ *ack -= sbused(&xprt->xp_socket->so_snd);
return (TRUE);
}
More information about the svn-src-projects
mailing list