OSDN Git Service

[TCP]: Handle SACK'd packets properly in tcp_fragment().
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 20 Sep 2005 01:18:38 +0000 (18:18 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Sep 2005 01:18:38 +0000 (18:18 -0700)
commite14c3caf605dfd29bd1aac3097e39db94afc9f07
tree9278bb47c9197f27ca6ebd23582f0f2bf5b46dbb
parent3c3f8f25c177e4f9e4e00bcc1b90b28b1be37937
[TCP]: Handle SACK'd packets properly in tcp_fragment().

The problem is that we're now calling tcp_fragment() in a context
where the packets might be marked as SACKED_ACKED or SACKED_RETRANS.
This was not possible before as you never retransmitted packets that
are so marked.

Because of this, we need to adjust sacked_out and retrans_out in
tcp_fragment().  This is exactly what the following patch does.

We also need to preserve the SACKED_ACKED/SACKED_RETRANS marking
if they exist.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_output.c