[IPV6]: fix flowlabel seqfile handling
authorJames Morris <jmorris@namei.org>
Tue, 31 Oct 2006 08:43:44 +0000 (00:43 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 31 Oct 2006 08:43:44 +0000 (00:43 -0800)
commit1b7c2dbc07bf0663a41e3dc838992930019f08fd
tree66da0b902159e6f03c8131a21ce8ab1ea7f87097
parentc6817e4c32d8c4118405d2dec30ac1c264349085
[IPV6]: fix flowlabel seqfile handling

There's a bug in the seqfile show operation for flowlabel objects, where
each hash chain is traversed cumulatively for each element.  The following
function is called for each element of each chain:

static void ip6fl_fl_seq_show(struct seq_file *seq, struct ip6_flowlabel *fl)
{
        while(fl) {
                seq_printf...

fl = fl->next;
}
}

Thus, objects can appear mutliple times when reading
/proc/net/ip6_flowlabel, as the above is called for each element in the
chain.

The solution is to remove the while() loop from the above, and traverse
each chain exactly once, per the patch below.  This also removes the
ip6fl_fl_seq_show() function, which does nothing else.

Signed-off-by: James Morris <jmorris@namei.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6_flowlabel.c