From patchwork Wed Mar 28 01:21:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Ahern X-Patchwork-Id: 891927 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=cumulusnetworks.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=cumulusnetworks.com header.i=@cumulusnetworks.com header.b="MVDXX2z1"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 409qqs1Q6lz9rxx for ; Wed, 28 Mar 2018 12:22:33 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752856AbeC1BWM (ORCPT ); Tue, 27 Mar 2018 21:22:12 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:35181 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752839AbeC1BWK (ORCPT ); Tue, 27 Mar 2018 21:22:10 -0400 Received: by mail-pf0-f196.google.com with SMTP id u86so350203pfd.2 for ; Tue, 27 Mar 2018 18:22:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cumulusnetworks.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=4+eXqC0bcNJ3oj6WgPWb5qNnMpipH6NdshbAy7kKkjM=; b=MVDXX2z1KS3uXOHZhZPzuPTVvnPR6RMD7pGsxVU+VJobUf+/FEXAzW5r6flQvg6+GC BeN2Frhhz60PEHSJRP9d426ME3rS3A/w9QvT8/2TxLVphLKe/zLME6N5X7xnSrM7oLxd jS3Aa+pWV48Ul7kEi3dLdDPWLiE86FYCkzcRk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4+eXqC0bcNJ3oj6WgPWb5qNnMpipH6NdshbAy7kKkjM=; b=m4+LYutKOqVMYG/CTab6TAbuCkQQojB0K9q7FX7zGGJPzueM3NA7IIN3Sn0f5vsWBQ zVAQIjTFsDOI2zG+kffuTd/gN4GuotSeULugyW/CRFbbUayvkHRyAdXt3Z0LaarE0KI5 Rqyvh4nqmhtKzaflxxhIRWdClPdEQyE2WKt7YLZbGFMzKpdB1w4h/aNWyt7iXWgvdz1c vh5FBPLWAKGKflW88tZttJAs7MIS6yByqoAYJTijefeColtkyYgdll11LYMoEm3BhIDE BszOoBBQFUHeS+EASo8OEtqZ4InLztwrKV89Zjye2EWcgeHK5xwvmw74ipPyNrS2QT7/ Kk4w== X-Gm-Message-State: AElRT7F+IR6tR1x/M8z5l8Yniee9QrxlUj9HfTyqpZMQRDn/m8IoZv9O qXsLx+Vm5Zu7smDiF8/Ce0X+NdH2 X-Google-Smtp-Source: AIpwx4/UwbDfpTEJA2AK158+A9TSzGEKUbb73QXwncCTZcIJLhzlvxhm1qUhkXYlUmADtJZR/fQiQA== X-Received: by 10.98.10.156 with SMTP id 28mr1245930pfk.33.1522200129324; Tue, 27 Mar 2018 18:22:09 -0700 (PDT) Received: from kenny.it.cumulusnetworks.com. (fw.cumulusnetworks.com. [216.129.126.126]) by smtp.googlemail.com with ESMTPSA id y18sm4798595pfe.67.2018.03.27.18.22.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Mar 2018 18:22:08 -0700 (PDT) From: David Ahern To: netdev@vger.kernel.org Cc: davem@davemloft.net, roopa@cumulusnetworks.com, shm@cumulusnetworks.com, jiri@mellanox.com, idosch@mellanox.com, jakub.kicinski@netronome.com, andy.roulin@gmail.com, David Ahern Subject: [PATCH net-next 2/6] net: Move call_fib_rule_notifiers up in fib_nl_newrule Date: Tue, 27 Mar 2018 18:21:56 -0700 Message-Id: <20180328012200.15175-3-dsa@cumulusnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180328012200.15175-1-dsa@cumulusnetworks.com> References: <20180328012200.15175-1-dsa@cumulusnetworks.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Move call_fib_rule_notifiers up in fib_nl_newrule to the point right before the rule is inserted into the list. At this point there are no more failure paths within the core rule code, so if the notifier does not fail then the rule will be inserted into the list. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel --- net/core/fib_rules.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c index 9d87ce868402..33958f84c173 100644 --- a/net/core/fib_rules.c +++ b/net/core/fib_rules.c @@ -631,6 +631,11 @@ int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr *nlh, if (err < 0) goto errout_free; + err = call_fib_rule_notifiers(net, FIB_EVENT_RULE_ADD, rule, ops, + extack); + if (err < 0) + goto errout_free; + list_for_each_entry(r, &ops->rules_list, list) { if (r->pref > rule->pref) break; @@ -667,7 +672,6 @@ int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr *nlh, if (rule->tun_id) ip_tunnel_need_metadata(); - call_fib_rule_notifiers(net, FIB_EVENT_RULE_ADD, rule, ops, extack); notify_rule_change(RTM_NEWRULE, rule, ops, nlh, NETLINK_CB(skb).portid); flush_route_cache(ops); rules_ops_put(ops);