On 07/03/13 13:36, Lawrence Stewart wrote:
> Author: lstewart
> Date: Wed Jul 3 03:36:36 2013
> New Revision: 252532
> URL: http://svnweb.freebsd.org/changeset/base/252532
>
> Log:
MFC r251984:
> When a previous call to sbsndptr() leaves sb->sb_sndptroff at the start of
> an
> mbuf that was fully consumed by the previous call, the mbuf ptr returned by
> the
> current call ends up being the previous mbuf in the sb chain to the one that
> contains the data we want.
>
> This does not cause any observable issues because the mbuf copy routines
> happily
> walk the mbuf chain to get to the data at the moff offset, which in this
> case
> means they effectively skip over the mbuf returned by sbsndptr().
>
> We can't adjust sb->sb_sndptr during the previous call for this case
> because the
> next mbuf in the chain may not exist yet. We therefore need to detect the
> condition and make the adjustment during the current call.
>
> Fix by detecting the special case of moff being at the start of the next
> mbuf in
> the chain and adjust the required accounting variables accordingly.
>
> Reviewed by: andre
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "[email protected]"