summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@redhat.com>2015-03-11 23:36:08 (GMT)
committerDavid S. Miller <davem@davemloft.net>2015-03-12 01:24:32 (GMT)
commit654eff45166c7e89d18fc476325c975768b2e347 (patch)
treeb5f355d84c286551bedf0551fd58e355f9180de9
parent388a83576aa1816184a1706753ffa308cce53c8d (diff)
downloadlinux-654eff45166c7e89d18fc476325c975768b2e347.tar.xz
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: 0ddcf43d5 ("ipv4: FIB Local/MAIN table collapse") Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv4/fib_trie.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
index 7b2badd..dd488c1 100644
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -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)
{
+ struct fib_route_iter *iter = seq->private;
+ struct fib_table *tb = iter->main_tb;
struct fib_alias *fa;
struct key_vector *l = v;
__be32 prefix;
@@ -2561,6 +2563,9 @@ static int fib_route_seq_show(struct seq_file *seq, void *v)
(fa->fa_type == RTN_MULTICAST))
continue;
+ if (fa->tb_id != tb->tb_id)
+ continue;
+
seq_setwidth(seq, 127);
if (fi)