All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] Revert "fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied"
@ 2019-06-05  4:27 Hangbin Liu
  2019-06-05  5:44 ` Nathan Chancellor
  2019-06-06  0:55 ` David Miller
  0 siblings, 2 replies; 5+ messages in thread
From: Hangbin Liu @ 2019-06-05  4:27 UTC (permalink / raw)
  To: netdev
  Cc: Nathan Chancellor, Greg Kroah-Hartman, zenczykowski,
	Lorenzo Colitti, David Miller, David Ahern, Thomas Haller,
	Yaro Slav, Hangbin Liu

This reverts commit e9919a24d3022f72bcadc407e73a6ef17093a849.

Nathan reported the new behaviour breaks Android, as Android just add
new rules and delete old ones.

If we return 0 without adding dup rules, Android will remove the new
added rules and causing system to soft-reboot.

Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Fixes: e9919a24d302 ("fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied")
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
 net/core/fib_rules.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
index 43f0115cce9c..18f8dd8329ed 100644
--- a/net/core/fib_rules.c
+++ b/net/core/fib_rules.c
@@ -757,9 +757,9 @@ int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr *nlh,
 	if (err)
 		goto errout;
 
-	if (rule_exists(ops, frh, tb, rule)) {
-		if (nlh->nlmsg_flags & NLM_F_EXCL)
-			err = -EEXIST;
+	if ((nlh->nlmsg_flags & NLM_F_EXCL) &&
+	    rule_exists(ops, frh, tb, rule)) {
+		err = -EEXIST;
 		goto errout_free;
 	}
 
-- 
2.19.2


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-06-06  1:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-05  4:27 [PATCH net] Revert "fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied" Hangbin Liu
2019-06-05  5:44 ` Nathan Chancellor
2019-06-06  0:55 ` David Miller
2019-06-06  1:23   ` Nathan Chancellor
2019-06-06  1:41     ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.