aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/tcp.h
diff options
context:
space:
mode:
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>2007-09-20 14:37:19 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:52:12 -0400
commitb76892051cf1c04d95872838e70146f65e3b9d75 (patch)
tree475050b8e41eb317144465b1e2b9255fbad188b4 /include/net/tcp.h
parentc96fd3d461fa495400df24be3b3b66f0e0b152f9 (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.h6
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 */
1070static inline void tcp_clear_all_retrans_hints(struct tcp_sock *tp) { 1070static 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
1077static 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