diff options
Diffstat (limited to 'net/core/fib_rules.c')
| -rw-r--r-- | net/core/fib_rules.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c index cfb7d25c172..21698f8c49e 100644 --- a/net/core/fib_rules.c +++ b/net/core/fib_rules.c @@ -225,7 +225,8 @@ jumped:  			err = ops->action(rule, fl, flags, arg);  		if (err != -EAGAIN) { -			if (likely(atomic_inc_not_zero(&rule->refcnt))) { +			if ((arg->flags & FIB_LOOKUP_NOREF) || +			    likely(atomic_inc_not_zero(&rule->refcnt))) {  				arg->rule = rule;  				goto out;  			}  |