diff options
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 16 | 
1 files changed, 8 insertions, 8 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 4a8ec457310..fc55a1c79bd 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -274,13 +274,6 @@ static void tcp_v4_mtu_reduced(struct sock *sk)  	struct inet_sock *inet = inet_sk(sk);  	u32 mtu = tcp_sk(sk)->mtu_info; -	/* We are not interested in TCP_LISTEN and open_requests (SYN-ACKs -	 * send out by Linux are always <576bytes so they should go through -	 * unfragmented). -	 */ -	if (sk->sk_state == TCP_LISTEN) -		return; -  	dst = inet_csk_update_pmtu(sk, mtu);  	if (!dst)  		return; @@ -408,6 +401,13 @@ void tcp_v4_err(struct sk_buff *icmp_skb, u32 info)  			goto out;  		if (code == ICMP_FRAG_NEEDED) { /* PMTU discovery (RFC1191) */ +			/* We are not interested in TCP_LISTEN and open_requests +			 * (SYN-ACKs send out by Linux are always <576bytes so +			 * they should go through unfragmented). +			 */ +			if (sk->sk_state == TCP_LISTEN) +				goto out; +  			tp->mtu_info = info;  			if (!sock_owned_by_user(sk)) {  				tcp_v4_mtu_reduced(sk); @@ -2580,7 +2580,7 @@ static void tcp_seq_stop(struct seq_file *seq, void *v)  int tcp_seq_open(struct inode *inode, struct file *file)  { -	struct tcp_seq_afinfo *afinfo = PDE(inode)->data; +	struct tcp_seq_afinfo *afinfo = PDE_DATA(inode);  	struct tcp_iter_state *s;  	int err;  |