diff options
author | Eric Dumazet <edumazet@google.com> | 2015-10-02 11:43:24 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-10-03 04:32:36 -0700 |
commit | aac065c50aba0c534a929aeb687eb68c58e523b8 (patch) | |
tree | b8817f56e96322e7c855653fe63eced1256c8356 /net/ipv4/inet_diag.c | |
parent | fff1f3001cc58b5064a0f1154a7ac09b76f29c44 (diff) | |
download | linux-aac065c50aba0c534a929aeb687eb68c58e523b8.tar.gz linux-aac065c50aba0c534a929aeb687eb68c58e523b8.tar.bz2 linux-aac065c50aba0c534a929aeb687eb68c58e523b8.zip |
tcp: move qlen/young out of struct listen_sock
qlen_inc & young_inc were protected by listener lock,
while qlen_dec & young_dec were atomic fields.
Everything needs to be atomic for upcoming lockless listener.
Also move qlen/young in request_sock_queue as we'll get rid
of struct listen_sock eventually.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/inet_diag.c')
-rw-r--r-- | net/ipv4/inet_diag.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c index c3b1f3a0f4cf..0ac1d68dc8a6 100644 --- a/net/ipv4/inet_diag.c +++ b/net/ipv4/inet_diag.c @@ -753,7 +753,7 @@ static int inet_diag_dump_reqs(struct sk_buff *skb, struct sock *sk, spin_lock(&icsk->icsk_accept_queue.syn_wait_lock); lopt = icsk->icsk_accept_queue.listen_opt; - if (!lopt || !listen_sock_qlen(lopt)) + if (!lopt || !reqsk_queue_len(&icsk->icsk_accept_queue)) goto out; if (bc) { |