From owner-cvs-src-old@FreeBSD.ORG Mon Jun 22 21:46:55 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 81B491065755 for ; Mon, 22 Jun 2009 21:46:55 +0000 (UTC) (envelope-from andre@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6F17B8FC1F for ; Mon, 22 Jun 2009 21:46:55 +0000 (UTC) (envelope-from andre@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5MLktiY077152 for ; Mon, 22 Jun 2009 21:46:55 GMT (envelope-from andre@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5MLkt9F077151 for cvs-src-old@freebsd.org; Mon, 22 Jun 2009 21:46:55 GMT (envelope-from andre@repoman.freebsd.org) Message-Id: <200906222146.n5MLkt9F077151@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to andre@repoman.freebsd.org using -f From: Andre Oppermann Date: Mon, 22 Jun 2009 21:46:40 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/kern uipc_sockbuf.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Jun 2009 21:46:55 -0000 andre 2009-06-22 21:46:40 UTC FreeBSD src repository Modified files: sys/kern uipc_sockbuf.c Log: SVN rev 194662 on 2009-06-22 21:46:40Z by andre In sbappendstream_locked() demote all incoming packet mbufs (and chains) to pure data mbufs using m_demote(). This removes the packet header and all m_tag information as they are not meaningful anymore on a stream socket where mbufs are linked through m->m_next. Strictly speaking a packet header can be only ever valid on the first mbuf in an m_next chain. sbcompress() was doing this already when the mbuf chain layout lent itself to it (e.g. header splitting or merge-append), just not consistently. This frees resources at socket buffer append time instead of at sbdrop_internal() time after data has been read from the socket. For MAC the per packet information has done its duty and during socket buffer appending the policy of the socket itself takes over. With the append the packet boundaries disappear naturally and with it any context that was based on it. None of the residual information from mbuf headers in the socket buffer on stream sockets was looked at. Revision Changes Path 1.182 +3 -0 src/sys/kern/uipc_sockbuf.c