aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLevin Calado <levincalado@gmail.com>2015-10-14 23:08:31 +0800
committerMoyster <oysterized@gmail.com>2016-08-26 20:05:07 +0200
commitb1f470ef8f6930d423c1be4920477ca2b0d5c908 (patch)
tree6d545f06895b97d56c16c4127625953a5f2c1313
parente94414c4fc41bbd9d7beeb427fbaea700587e360 (diff)
Revert "fib_rules: fix fib rule dumps across multiple skbs"
This reverts commit d0550a3f2d313a5310ace03299d45ef63edfb750. Signed-off-by: Stefan Guendhoer <stefan@guendhoer.com>
-rw-r--r--net/core/fib_rules.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
index 1b10e3639..da78f5c6d 100644
--- a/net/core/fib_rules.c
+++ b/net/core/fib_rules.c
@@ -645,17 +645,15 @@ static int dump_rules(struct sk_buff *skb, struct netlink_callback *cb,
{
int idx = 0;
struct fib_rule *rule;
- int err = 0;
rcu_read_lock();
list_for_each_entry_rcu(rule, &ops->rules_list, list) {
if (idx < cb->args[1])
goto skip;
- err = fib_nl_fill_rule(skb, rule, NETLINK_CB(cb->skb).portid,
- cb->nlh->nlmsg_seq, RTM_NEWRULE,
- NLM_F_MULTI, ops);
- if (err)
+ if (fib_nl_fill_rule(skb, rule, NETLINK_CB(cb->skb).portid,
+ cb->nlh->nlmsg_seq, RTM_NEWRULE,
+ NLM_F_MULTI, ops) < 0)
break;
skip:
idx++;
@@ -664,7 +662,7 @@ skip:
cb->args[1] = idx;
rules_ops_put(ops);
- return err;
+ return skb->len;
}
static int fib_nl_dumprule(struct sk_buff *skb, struct netlink_callback *cb)
@@ -680,9 +678,7 @@ static int fib_nl_dumprule(struct sk_buff *skb, struct netlink_callback *cb)
if (ops == NULL)
return -EAFNOSUPPORT;
- dump_rules(skb, cb, ops);
-
- return skb->len;
+ return dump_rules(skb, cb, ops);
}
rcu_read_lock();