Subject: Re: [PATCH v2] net: Fix behaviour of unreachable, blackhole and prohibit routes

From: Alexander Duyck <[email-masked]>
Date: Thu, 3 Sep 2015 15:22:35 -0700

On 09/03/2015 10:29 AM, David Miller wrote:
> From: Nikola Forró <[email-masked]>
> Date: Thu, 03 Sep 2015 11:08:51 +0200
>
>> @@ -233,8 +233,10 @@ static inline int fib_lookup(struct net *net, const struct flowi4 *flp,
>>   	rcu_read_lock();
>>   
>>   	tb = fib_get_table(net, RT_TABLE_MAIN);
>> -	if (tb && !fib_table_lookup(tb, flp, res, flags | FIB_LOOKUP_NOREF))
>> -		err = 0;
>> +	if (tb)
>> +		err = fib_table_lookup(tb, flp, res, flags | FIB_LOOKUP_NOREF);
>> +		if (err == -EAGAIN)
>> +			err = -ENETUNREACH;
> You didn't test this.

Actually the way the code is structured is still functional this way.  
The indentation is all that is really wrong.

I suspect this actually results in smaller code that may be faster for 
the standard case since tb will almost always have a value anyway, and 
if tb doesn't exist then err would equal -ENETUNREACH which would just 
mean the err == -EAGAIN would be ignored.

- Alex