summaryrefslogtreecommitdiffstats
path: root/net/ipv4/fib_trie.c
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@redhat.com>2015-03-06 09:53:56 -0800
committerDavid S. Miller <davem@davemloft.net>2015-03-06 15:49:27 -0500
commit72be72607a560dfa7a4715cb372f9e1e40ed65a5 (patch)
treecf8e606d93b6da931416b5251a2bd2f8a918b844 /net/ipv4/fib_trie.c
parent20488239d236f1615e2be8b0f6dbd30e4310940a (diff)
downloadlinux-72be72607a560dfa7a4715cb372f9e1e40ed65a5.tar.bz2
fib_trie: Minor cleanups to fib_table_flush_external
This change just does a couple of minor cleanups on fib_table_flush_external. Specifically it addresses the fact that resize was being called even though nothing was being removed from the table, and it drops an unecessary indent since we could just call continue on the inverse of the fi && flag check. Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_trie.c')
-rw-r--r--net/ipv4/fib_trie.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
index 0131f369f5c9..488cebc86631 100644
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -1586,13 +1586,8 @@ backtrace:
while (!(cindex--)) {
t_key pkey = pn->key;
- n = pn;
- pn = node_parent(n);
-
- /* resize completed node */
- resize(t, n);
-
/* if we got the root we are done */
+ pn = node_parent(pn);
if (!pn)
return;
@@ -1607,12 +1602,13 @@ backtrace:
hlist_for_each_entry(fa, &n->leaf, fa_list) {
struct fib_info *fi = fa->fa_info;
- if (fi && (fi->fib_flags & RTNH_F_EXTERNAL)) {
- netdev_switch_fib_ipv4_del(n->key,
- KEYLENGTH - fa->fa_slen,
- fi, fa->fa_tos,
- fa->fa_type, tb->tb_id);
- }
+ if (!fi || !(fi->fib_flags & RTNH_F_EXTERNAL))
+ continue;
+
+ netdev_switch_fib_ipv4_del(n->key,
+ KEYLENGTH - fa->fa_slen,
+ fi, fa->fa_tos,
+ fa->fa_type, tb->tb_id);
}
/* if trie is leaf only loop is completed */