svn commit: r272703 - projects/sendfile/sys/kern

Gleb Smirnoff glebius at FreeBSD.org
Tue Oct 7 14:34:42 UTC 2014


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;


More information about the svn-src-projects mailing list