]> git.baikalelectronics.ru Git - kernel.git/commit
[TCP]: Split SACK FRTO flag clearing (fixes FRTO corner case bug)
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
Sun, 11 Nov 2007 05:24:19 +0000 (21:24 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 11 Nov 2007 05:24:19 +0000 (21:24 -0800)
commitd41e00abaf5b133fe2eb7c9a1ab3d162eeb802d6
treeca3b4363dba852caee16f388d48ff4ffe2cc2341
parentc9c130bf57a94b636e470d671bdec12a18d6e634
[TCP]: Split SACK FRTO flag clearing (fixes FRTO corner case bug)

In case we run out of mem when fragmenting, the clearing of
FLAG_ONLY_ORIG_SACKED might get missed which then feeds FRTO
with false information. Move clearing outside skb processing
loop so that it will get executed even if the skb loop
terminates prematurely due to out-of-mem.

Besides, now the core of the loop truly deals with a single
skb only, which also enables creation a more self-contained
of tcp_sacktag_one later on.

In addition, small reorganization of if branches was made.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c