From: Ido Schimmel <idosch@idosch.org>
To: Jiri Pirko <jiri@resnulli.us>
Cc: netdev@vger.kernel.org, davem@davemloft.net, idosch@mellanox.com,
dsahern@gmail.com, jakub.kicinski@netronome.com,
tariqt@mellanox.com, saeedm@mellanox.com, kuznet@ms2.inr.ac.ru,
yoshfuji@linux-ipv6.org, shuah@kernel.org, mlxsw@mellanox.com
Subject: Re: [patch net-next 03/15] net: fib_notifier: propagate possible error during fib notifier registration
Date: Sun, 15 Sep 2019 11:17:46 +0300 [thread overview]
Message-ID: <20190915081746.GB11194@splinter> (raw)
In-Reply-To: <20190914064608.26799-4-jiri@resnulli.us>
On Sat, Sep 14, 2019 at 08:45:56AM +0200, Jiri Pirko wrote:
> From: Jiri Pirko <jiri@mellanox.com>
>
> Unlike events for registered notifier, during the registration, the
> errors that happened for the block being registered are not propagated
> up to the caller. For fib rules, this is already present, but not for
What do you mean by "already present" ? You added it below for rules as
well...
> fib entries. So make sure the error is propagated for those as well.
>
> Signed-off-by: Jiri Pirko <jiri@mellanox.com>
> ---
> include/net/ip_fib.h | 2 +-
> net/core/fib_notifier.c | 2 --
> net/core/fib_rules.c | 11 ++++++++---
> net/ipv4/fib_notifier.c | 4 +---
> net/ipv4/fib_trie.c | 31 ++++++++++++++++++++++---------
> net/ipv4/ipmr_base.c | 22 +++++++++++++++-------
> net/ipv6/ip6_fib.c | 36 ++++++++++++++++++++++++------------
> 7 files changed, 71 insertions(+), 37 deletions(-)
>
> diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h
> index 4cec9ecaa95e..caae0fa610aa 100644
> --- a/include/net/ip_fib.h
> +++ b/include/net/ip_fib.h
> @@ -229,7 +229,7 @@ int __net_init fib4_notifier_init(struct net *net);
> void __net_exit fib4_notifier_exit(struct net *net);
>
> void fib_info_notify_update(struct net *net, struct nl_info *info);
> -void fib_notify(struct net *net, struct notifier_block *nb);
> +int fib_notify(struct net *net, struct notifier_block *nb);
>
> struct fib_table {
> struct hlist_node tb_hlist;
> diff --git a/net/core/fib_notifier.c b/net/core/fib_notifier.c
> index b965f3c0ec9a..fbd029425638 100644
> --- a/net/core/fib_notifier.c
> +++ b/net/core/fib_notifier.c
> @@ -65,8 +65,6 @@ static int fib_net_dump(struct net *net, struct notifier_block *nb)
>
> rcu_read_lock();
> list_for_each_entry_rcu(ops, &fn_net->fib_notifier_ops, list) {
> - int err;
Looks like this should have been removed in previous patch
> -
> if (!try_module_get(ops->owner))
> continue;
> err = ops->fib_dump(net, nb);
> diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
> index 28cbf07102bc..592d8aef90e3 100644
> --- a/net/core/fib_rules.c
> +++ b/net/core/fib_rules.c
> @@ -354,15 +354,20 @@ int fib_rules_dump(struct net *net, struct notifier_block *nb, int family)
> {
> struct fib_rules_ops *ops;
> struct fib_rule *rule;
> + int err = 0;
>
> ops = lookup_rules_ops(net, family);
> if (!ops)
> return -EAFNOSUPPORT;
> - list_for_each_entry_rcu(rule, &ops->rules_list, list)
> - call_fib_rule_notifier(nb, FIB_EVENT_RULE_ADD, rule, family);
> + list_for_each_entry_rcu(rule, &ops->rules_list, list) {
> + err = call_fib_rule_notifier(nb, FIB_EVENT_RULE_ADD,
> + rule, family);
Here you add it for rules
> + if (err)
> + break;
> + }
> rules_ops_put(ops);
>
> - return 0;
> + return err;
> }
> EXPORT_SYMBOL_GPL(fib_rules_dump);
next prev parent reply other threads:[~2019-09-15 8:17 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-14 6:45 [patch net-next 00/15] devlink: allow devlink instances to change network namespace Jiri Pirko
2019-09-14 6:45 ` [patch net-next 01/15] netdevsim: change fib accounting and limitations to be per-device Jiri Pirko
2019-09-14 6:45 ` [patch net-next 02/15] net: fib_notifier: make FIB notifier per-netns Jiri Pirko
2019-09-15 8:06 ` Ido Schimmel
2019-09-15 9:37 ` Jiri Pirko
2019-09-15 20:05 ` David Ahern
2019-09-16 5:38 ` Jiri Pirko
2019-09-16 14:54 ` David Ahern
2019-09-14 6:45 ` [patch net-next 03/15] net: fib_notifier: propagate possible error during fib notifier registration Jiri Pirko
2019-09-15 8:17 ` Ido Schimmel [this message]
2019-09-15 9:41 ` Jiri Pirko
2019-09-14 6:45 ` [patch net-next 04/15] mlxsw: spectrum_router: Don't rely on missing extack to symbolize dump Jiri Pirko
2019-09-14 6:45 ` [patch net-next 05/15] net: fib_notifier: propagate extack down to the notifier block callback Jiri Pirko
2019-09-14 6:45 ` [patch net-next 06/15] net: devlink: export devlink net getter Jiri Pirko
2019-09-14 6:46 ` [patch net-next 07/15] mlxsw: spectrum: Take devlink net instead of init_net Jiri Pirko
2019-09-14 6:46 ` [patch net-next 08/15] mlxsw: Register port netdevices into net of core Jiri Pirko
2019-09-15 8:37 ` Ido Schimmel
2019-09-14 6:46 ` [patch net-next 09/15] mlxsw: Propagate extack down to register_fib_notifier() Jiri Pirko
2019-09-15 8:39 ` Ido Schimmel
2019-09-14 6:46 ` [patch net-next 10/15] netdevsim: add all ports in nsim_dev_create() and del them in destroy() Jiri Pirko
2019-09-14 6:46 ` [patch net-next 11/15] netdevsim: implement proper devlink reload Jiri Pirko
2019-09-14 6:46 ` [patch net-next 12/15] netdevsim: register port netdevices into net of device Jiri Pirko
2019-09-14 6:46 ` [patch net-next 13/15] netdevsim: take devlink net instead of init_net Jiri Pirko
2019-09-14 6:46 ` [patch net-next 14/15] net: devlink: allow to change namespaces during reload Jiri Pirko
2019-09-15 8:58 ` Ido Schimmel
2019-09-15 9:43 ` Jiri Pirko
2019-09-14 6:46 ` [patch net-next 15/15] selftests: netdevsim: add tests for devlink reload with resources Jiri Pirko
2019-09-14 6:57 ` [patch iproute2-next 1/2] devlink: introduce cmdline option to switch to a different namespace Jiri Pirko
2019-09-15 18:01 ` David Ahern
2019-09-14 6:57 ` [patch iproute2-next 2/2] devlink: extend reload command to add support for network namespace change Jiri Pirko
2019-09-15 7:16 ` Ido Schimmel
2019-09-15 9:44 ` Jiri Pirko
2019-09-16 7:01 ` [patch net-next 00/15] devlink: allow devlink instances to change network namespace David Miller
2019-09-16 7:09 ` Jiri Pirko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190915081746.GB11194@splinter \
--to=idosch@idosch.org \
--cc=davem@davemloft.net \
--cc=dsahern@gmail.com \
--cc=idosch@mellanox.com \
--cc=jakub.kicinski@netronome.com \
--cc=jiri@resnulli.us \
--cc=kuznet@ms2.inr.ac.ru \
--cc=mlxsw@mellanox.com \
--cc=netdev@vger.kernel.org \
--cc=saeedm@mellanox.com \
--cc=shuah@kernel.org \
--cc=tariqt@mellanox.com \
--cc=yoshfuji@linux-ipv6.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.