Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Oct 2014 14:34:42 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r272703 - projects/sendfile/sys/kern
Message-ID:  <201410071434.s97EYgQQ022052@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: glebius
Date: Tue Oct  7 14:34:41 2014
New Revision: 272703
URL: https://svnweb.freebsd.org/changeset/base/272703

Log:
  Inline sb_shift_nrdy().
  
  Sponsored by:	Netflix
  Sponsored by:	Nginx, Inc.

Modified:
  projects/sendfile/sys/kern/uipc_sockbuf.c

Modified: projects/sendfile/sys/kern/uipc_sockbuf.c
==============================================================================
--- projects/sendfile/sys/kern/uipc_sockbuf.c	Tue Oct  7 14:30:24 2014	(r272702)
+++ projects/sendfile/sys/kern/uipc_sockbuf.c	Tue Oct  7 14:34:41 2014	(r272703)
@@ -68,25 +68,6 @@ static	u_long sb_efficiency = 8;	/* para
 static struct mbuf	*sbcut_internal(struct sockbuf *sb, int len);
 static void	sbflush_internal(struct sockbuf *sb);
 
-static void
-sb_shift_nrdy(struct sockbuf *sb, struct mbuf *m)
-{
-
-#if 0	/* XXX: not yet: soclose() call path comes here w/o lock. */
-	SOCKBUF_LOCK_ASSERT(sb);
-#endif
-	KASSERT(m->m_flags & M_NOTREADY, ("%s: m %p !M_NOTREADY", __func__, m));
-
-	m = m->m_next;
-	while (m != NULL && !(m->m_flags & M_NOTREADY)) {
-		m->m_flags &= ~M_BLOCKED;
-		sb->sb_acc += m->m_len;
-		m = m->m_next;
-	}
-
-	sb->sb_fnrdy = m;
-}
-
 int
 sbready(struct sockbuf *sb, struct mbuf *m, int count)
 {
@@ -169,8 +150,18 @@ sbfree(struct sockbuf *sb, struct mbuf *
 	if (!(m->m_flags & M_NOTAVAIL))
 		sb->sb_acc -= m->m_len;
 
-	if (sb->sb_fnrdy == m)
-		sb_shift_nrdy(sb, m);
+	if (m == sb->sb_fnrdy) {
+		KASSERT(m->m_flags & M_NOTREADY,
+		    ("%s: m %p !M_NOTREADY", __func__, m));
+
+		m = m->m_next;
+		while (m != NULL && !(m->m_flags & M_NOTREADY)) {
+			m->m_flags &= ~M_BLOCKED;
+			sb->sb_acc += m->m_len;
+			m = m->m_next;
+		}
+		sb->sb_fnrdy = m;
+	}
 
 	if (m->m_type != MT_DATA && m->m_type != MT_OOBDATA)
 		sb->sb_ctl -= m->m_len;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201410071434.s97EYgQQ022052>