ipv6: avoid high order memory allocations for /proc/net/ipv6_route
authorHannes Frederic Sowa <hannes@stressinduktion.org>
Sat, 21 Sep 2013 14:55:59 +0000 (16:55 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Sep 2013 21:32:16 +0000 (17:32 -0400)
commit8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7
tree37202066f7715ffc4858c4dd9b5c66c1c8c5cd76
parent6229ed1f22592d5ee8360a638cb965fef88b080f
ipv6: avoid high order memory allocations for /proc/net/ipv6_route

Dumping routes on a system with lots rt6_infos in the fibs causes up to
11-order allocations in seq_file (which fail). While we could switch
there to vmalloc we could just implement the streaming interface for
/proc/net/ipv6_route. This patch switches /proc/net/ipv6_route from
single_open_net to seq_open_net.

loff_t *pos tracks dst entries.

Also kill never used struct rt6_proc_arg and now unused function
fib6_clean_all_ro.

Cc: Ben Greear <greearb@candelatech.com>
Cc: Patrick McHardy <kaber@trash.net>
Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip6_fib.h
net/ipv6/ip6_fib.c
net/ipv6/route.c