diff options
Diffstat (limited to 'net/ipv4/fib_trie.c')
| -rw-r--r-- | net/ipv4/fib_trie.c | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c index 94e5d83db4db..90f0fc8c87bd 100644 --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c @@ -338,12 +338,18 @@ static struct tnode *tnode_alloc(int bits)  static inline void empty_child_inc(struct key_vector *n)  { -	++tn_info(n)->empty_children ? : ++tn_info(n)->full_children; +	tn_info(n)->empty_children++; + +	if (!tn_info(n)->empty_children) +		tn_info(n)->full_children++;  }  static inline void empty_child_dec(struct key_vector *n)  { -	tn_info(n)->empty_children-- ? : tn_info(n)->full_children--; +	if (!tn_info(n)->empty_children) +		tn_info(n)->full_children--; + +	tn_info(n)->empty_children--;  }  static struct key_vector *leaf_new(t_key key, struct fib_alias *fa) | 

