Commit 02e24903 authored by Eric Dumazet's avatar Eric Dumazet Committed by Jakub Kicinski

netlink: let core handle error cases in dump operations

After commit b5a89915 ("netlink: handle EMSGSIZE errors
in the core"), we can remove some code that was not 100 % correct
anyway.
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20240306102426.245689-1-edumazet@google.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 4af9a0be
...@@ -2267,11 +2267,8 @@ static int rtnl_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb) ...@@ -2267,11 +2267,8 @@ static int rtnl_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb)
nlh->nlmsg_seq, 0, flags, nlh->nlmsg_seq, 0, flags,
ext_filter_mask, 0, NULL, 0, ext_filter_mask, 0, NULL, 0,
netnsid, GFP_KERNEL); netnsid, GFP_KERNEL);
if (err < 0) { if (err < 0)
if (likely(skb->len))
err = skb->len;
break; break;
}
} }
cb->seq = tgt_net->dev_base_seq; cb->seq = tgt_net->dev_base_seq;
nl_dump_check_consistent(cb, nlmsg_hdr(skb)); nl_dump_check_consistent(cb, nlmsg_hdr(skb));
......
...@@ -1900,8 +1900,6 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) ...@@ -1900,8 +1900,6 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
goto done; goto done;
} }
done: done:
if (err < 0 && likely(skb->len))
err = skb->len;
if (fillargs.netnsid >= 0) if (fillargs.netnsid >= 0)
put_net(tgt_net); put_net(tgt_net);
rcu_read_unlock(); rcu_read_unlock();
...@@ -2312,8 +2310,6 @@ static int inet_netconf_dump_devconf(struct sk_buff *skb, ...@@ -2312,8 +2310,6 @@ static int inet_netconf_dump_devconf(struct sk_buff *skb,
ctx->all_default++; ctx->all_default++;
} }
done: done:
if (err < 0 && likely(skb->len))
err = skb->len;
rcu_read_unlock(); rcu_read_unlock();
return err; return err;
} }
......
...@@ -1026,8 +1026,6 @@ static int inet_dump_fib(struct sk_buff *skb, struct netlink_callback *cb) ...@@ -1026,8 +1026,6 @@ static int inet_dump_fib(struct sk_buff *skb, struct netlink_callback *cb)
goto unlock; goto unlock;
} }
err = fib_table_dump(tb, skb, cb, &filter); err = fib_table_dump(tb, skb, cb, &filter);
if (err < 0 && skb->len)
err = skb->len;
goto unlock; goto unlock;
} }
...@@ -1045,11 +1043,8 @@ static int inet_dump_fib(struct sk_buff *skb, struct netlink_callback *cb) ...@@ -1045,11 +1043,8 @@ static int inet_dump_fib(struct sk_buff *skb, struct netlink_callback *cb)
memset(&cb->args[2], 0, sizeof(cb->args) - memset(&cb->args[2], 0, sizeof(cb->args) -
2 * sizeof(cb->args[0])); 2 * sizeof(cb->args[0]));
err = fib_table_dump(tb, skb, cb, &filter); err = fib_table_dump(tb, skb, cb, &filter);
if (err < 0) { if (err < 0)
if (likely(skb->len))
err = skb->len;
goto out; goto out;
}
dumped = 1; dumped = 1;
next: next:
e++; e++;
......
...@@ -793,8 +793,6 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb, ...@@ -793,8 +793,6 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
ctx->all_default++; ctx->all_default++;
} }
done: done:
if (err < 0 && likely(skb->len))
err = skb->len;
rcu_read_unlock(); rcu_read_unlock();
return err; return err;
} }
...@@ -6158,11 +6156,8 @@ static int inet6_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb) ...@@ -6158,11 +6156,8 @@ static int inet6_dump_ifinfo(struct sk_buff *skb, struct netlink_callback *cb)
NETLINK_CB(cb->skb).portid, NETLINK_CB(cb->skb).portid,
cb->nlh->nlmsg_seq, cb->nlh->nlmsg_seq,
RTM_NEWLINK, NLM_F_MULTI); RTM_NEWLINK, NLM_F_MULTI);
if (err < 0) { if (err < 0)
if (likely(skb->len))
err = skb->len;
break; break;
}
} }
rcu_read_unlock(); rcu_read_unlock();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment