Thread (5 messages) 5 messages, 4 authors, 2015-09-03

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

flat view

From: Alexander Duyck <hidden>
Date: 2015-09-03 22:22:37

On 09/03/2015 10:29 AM, David Miller wrote:
From: Nikola Forró <redacted>
Date: Thu, 03 Sep 2015 11:08:51 +0200
quoted
@@ -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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help