tcp/dccp: fix inet_reuseport_add_sock()
authorEric Dumazet <edumazet@google.com>
Thu, 7 Apr 2016 05:07:34 +0000 (22:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 7 Apr 2016 16:02:33 +0000 (12:02 -0400)
commit8501786929de4616b10b8059ad97abd304a7dddf
treea523430f65bfddf7b2988d8cee3c08f23f2c5e68
parent94ab1ea94c71b7ba3e835315d69880a8086d7ab1
tcp/dccp: fix inet_reuseport_add_sock()

David Ahern reported panics in __inet_hash() caused by my recent commit.

The reason is inet_reuseport_add_sock() was still using
sk_nulls_for_each_rcu() instead of sk_for_each_rcu().
SO_REUSEPORT enabled listeners were causing an instant crash.

While chasing this bug, I found that I forgot to clear SOCK_RCU_FREE
flag, as it is inherited from the parent at clone time.

Fixes: 3b24d854cb35 ("tcp/dccp: do not touch listener sk_refcnt under synflood")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: David Ahern <dsa@cumulusnetworks.com>
Tested-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/inet_connection_sock.c
net/ipv4/inet_hashtables.c