On 09/03/2015 10:29 AM, David Miller wrote:
From: Nikola Forró <nfo...@redhat.com>
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
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html