Commit 654eff45 authored by Alexander Duyck's avatar Alexander Duyck Committed by David S. Miller

fib_trie: Only display main table in /proc/net/route

When we merged the tries for local and main I had overlooked the iterator
for /proc/net/route.  As a result it was outputting both local and main
when the two tries were merged.

This patch resolves that by only providing output for aliases that are
actually in the main trie.  As a result we should go back to the original
behavior which I assume will be necessary to maintain legacy support.

Fixes: 0ddcf43d ("ipv4: FIB Local/MAIN table collapse")
Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 388a8357
...@@ -2539,6 +2539,8 @@ static unsigned int fib_flag_trans(int type, __be32 mask, const struct fib_info ...@@ -2539,6 +2539,8 @@ static unsigned int fib_flag_trans(int type, __be32 mask, const struct fib_info
*/ */
static int fib_route_seq_show(struct seq_file *seq, void *v) static int fib_route_seq_show(struct seq_file *seq, void *v)
{ {
struct fib_route_iter *iter = seq->private;
struct fib_table *tb = iter->main_tb;
struct fib_alias *fa; struct fib_alias *fa;
struct key_vector *l = v; struct key_vector *l = v;
__be32 prefix; __be32 prefix;
...@@ -2561,6 +2563,9 @@ static int fib_route_seq_show(struct seq_file *seq, void *v) ...@@ -2561,6 +2563,9 @@ static int fib_route_seq_show(struct seq_file *seq, void *v)
(fa->fa_type == RTN_MULTICAST)) (fa->fa_type == RTN_MULTICAST))
continue; continue;
if (fa->tb_id != tb->tb_id)
continue;
seq_setwidth(seq, 127); seq_setwidth(seq, 127);
if (fi) if (fi)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment