diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
| -rw-r--r-- | net/ipv4/tcp_output.c | 14 | 
1 files changed, 9 insertions, 5 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 20dfd892c86f..d04632673a9e 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -910,14 +910,18 @@ void tcp_release_cb(struct sock *sk)  	if (flags & (1UL << TCP_TSQ_DEFERRED))  		tcp_tsq_handler(sk); -	if (flags & (1UL << TCP_WRITE_TIMER_DEFERRED)) +	if (flags & (1UL << TCP_WRITE_TIMER_DEFERRED)) {  		tcp_write_timer_handler(sk); - -	if (flags & (1UL << TCP_DELACK_TIMER_DEFERRED)) +		__sock_put(sk); +	} +	if (flags & (1UL << TCP_DELACK_TIMER_DEFERRED)) {  		tcp_delack_timer_handler(sk); - -	if (flags & (1UL << TCP_MTU_REDUCED_DEFERRED)) +		__sock_put(sk); +	} +	if (flags & (1UL << TCP_MTU_REDUCED_DEFERRED)) {  		sk->sk_prot->mtu_reduced(sk); +		__sock_put(sk); +	}  }  EXPORT_SYMBOL(tcp_release_cb);  |