diff options
author | Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> | 2007-09-20 14:37:19 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:52:12 -0400 |
commit | b76892051cf1c04d95872838e70146f65e3b9d75 (patch) | |
tree | 475050b8e41eb317144465b1e2b9255fbad188b4 /include/net/tcp.h | |
parent | c96fd3d461fa495400df24be3b3b66f0e0b152f9 (diff) |
[TCP]: Avoid clearing sacktag hint in trivial situations
There's no reason to clear the sacktag skb hint when small part
of the rexmit queue changes. Account changes (if any) instead when
fragmenting/collapsing. RTO/FRTO do not touch SACKED_ACKED bits so
no need to discard SACK tag hint at all.
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/tcp.h')
-rw-r--r-- | include/net/tcp.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index d78ad9bfcfa7..456983d1fcec 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -1067,11 +1067,15 @@ static inline void tcp_mib_init(void) | |||
1067 | } | 1067 | } |
1068 | 1068 | ||
1069 | /* from STCP */ | 1069 | /* from STCP */ |
1070 | static inline void tcp_clear_all_retrans_hints(struct tcp_sock *tp) { | 1070 | static inline void tcp_clear_retrans_hints_partial(struct tcp_sock *tp) { |
1071 | tp->lost_skb_hint = NULL; | 1071 | tp->lost_skb_hint = NULL; |
1072 | tp->scoreboard_skb_hint = NULL; | 1072 | tp->scoreboard_skb_hint = NULL; |
1073 | tp->retransmit_skb_hint = NULL; | 1073 | tp->retransmit_skb_hint = NULL; |
1074 | tp->forward_skb_hint = NULL; | 1074 | tp->forward_skb_hint = NULL; |
1075 | } | ||
1076 | |||
1077 | static inline void tcp_clear_all_retrans_hints(struct tcp_sock *tp) { | ||
1078 | tcp_clear_retrans_hints_partial(tp); | ||
1075 | tp->fastpath_skb_hint = NULL; | 1079 | tp->fastpath_skb_hint = NULL; |
1076 | } | 1080 | } |
1077 | 1081 | ||