[IP_SOCKGLUE]: Remove most of the tcp specific calls
As DCCP needs to be called in the same spots. Now we have a member in inet_sock (is_icsk), set at sock creation time from struct inet_protosw->flags (if INET_PROTOSW_ICSK is set, like for TCP and DCCP) to see if a struct sock instance is a inet_connection_sock for places like the ones in ip_sockglue.c (v4 and v6) where we previously were looking if sk_type was SOCK_STREAM, that is insufficient because we now use the same code for DCCP, that has sk_type SOCK_DCCP. Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
2271281362
commit
d83d8461f9
@@ -2342,7 +2342,7 @@ static int tcp_ack_update_window(struct sock *sk, struct tcp_sock *tp,
|
||||
|
||||
if (nwin > tp->max_window) {
|
||||
tp->max_window = nwin;
|
||||
tcp_sync_mss(sk, tp->pmtu_cookie);
|
||||
tcp_sync_mss(sk, inet_csk(sk)->icsk_pmtu_cookie);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3967,12 +3967,12 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
|
||||
struct tcphdr *th, unsigned len)
|
||||
{
|
||||
struct tcp_sock *tp = tcp_sk(sk);
|
||||
struct inet_connection_sock *icsk = inet_csk(sk);
|
||||
int saved_clamp = tp->rx_opt.mss_clamp;
|
||||
|
||||
tcp_parse_options(skb, &tp->rx_opt, 0);
|
||||
|
||||
if (th->ack) {
|
||||
struct inet_connection_sock *icsk;
|
||||
/* rfc793:
|
||||
* "If the state is SYN-SENT then
|
||||
* first check the ACK bit
|
||||
@@ -4061,7 +4061,7 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
|
||||
if (tp->rx_opt.sack_ok && sysctl_tcp_fack)
|
||||
tp->rx_opt.sack_ok |= 2;
|
||||
|
||||
tcp_sync_mss(sk, tp->pmtu_cookie);
|
||||
tcp_sync_mss(sk, icsk->icsk_pmtu_cookie);
|
||||
tcp_initialize_rcv_mss(sk);
|
||||
|
||||
/* Remember, tcp_poll() does not lock socket!
|
||||
@@ -4071,8 +4071,6 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
|
||||
mb();
|
||||
tcp_set_state(sk, TCP_ESTABLISHED);
|
||||
|
||||
icsk = inet_csk(sk);
|
||||
|
||||
/* Make sure socket is routed, for correct metrics. */
|
||||
icsk->icsk_af_ops->rebuild_header(sk);
|
||||
|
||||
@@ -4173,7 +4171,7 @@ discard:
|
||||
if (tp->ecn_flags&TCP_ECN_OK)
|
||||
sock_set_flag(sk, SOCK_NO_LARGESEND);
|
||||
|
||||
tcp_sync_mss(sk, tp->pmtu_cookie);
|
||||
tcp_sync_mss(sk, icsk->icsk_pmtu_cookie);
|
||||
tcp_initialize_rcv_mss(sk);
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user