netfilter: nf_conntrack: do not skip entries in /proc/net/nf_conntrack
ct_seq_show() has an opportunistic garbage collector :
if (nf_ct_should_gc(ct)) {
nf_ct_kill(ct);
goto release;
}
So if one nf_conn is killed there, next time ct_get_next() runs,
we skip the following item in the bucket, even if it should have
been displayed if gc did not take place.
We can decrement st->skip_elems to tell ct_get_next() one of the items
was removed from the chain.
Fixes: 58e207e498
("netfilter: evict stale entries when user reads /proc/net/nf_conntrack")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
This commit is contained in:
parent
94bd247bc2
commit
c5ba345b2d
|
@ -317,6 +317,9 @@ static int ct_seq_show(struct seq_file *s, void *v)
|
|||
smp_acquire__after_ctrl_dep();
|
||||
|
||||
if (nf_ct_should_gc(ct)) {
|
||||
struct ct_iter_state *st = s->private;
|
||||
|
||||
st->skip_elems--;
|
||||
nf_ct_kill(ct);
|
||||
goto release;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue