RE: [PATCH net-next] tipc: Cleanup tipc_nl_bearer_add() error paths

From: Tung Quang Nguyen
Date: Wed Feb 14 2024 - 20:06:56 EST


> net/tipc/bearer.c | 15 ++++++---------
> 1 file changed, 6 insertions(+), 9 deletions(-)
>
>diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index 878415c43527..5a526ebafeb4 100644
>--- a/net/tipc/bearer.c
>+++ b/net/tipc/bearer.c
>@@ -1079,30 +1079,27 @@ int tipc_nl_bearer_add(struct sk_buff *skb, struct genl_info *info)
> rtnl_lock();
> b = tipc_bearer_find(net, name);
> if (!b) {
>- rtnl_unlock();
> NL_SET_ERR_MSG(info->extack, "Bearer not found");
>- return -EINVAL;
>+ err = -EINVAL;
>+ goto out;
> }
>
> #ifdef CONFIG_TIPC_MEDIA_UDP
> if (attrs[TIPC_NLA_BEARER_UDP_OPTS]) {
> if (b->media->type_id != TIPC_MEDIA_TYPE_UDP) {
>- rtnl_unlock();
> NL_SET_ERR_MSG(info->extack, "UDP option is unsupported");
>- return -EINVAL;
>+ err = -EINVAL;
>+ goto out;
> }
>
> err = tipc_udp_nl_bearer_add(b,
> attrs[TIPC_NLA_BEARER_UDP_OPTS]);
>- if (err) {
>- rtnl_unlock();
>- return err;
>- }
> }
> #endif
>+out:
> rtnl_unlock();
>
>- return 0;
>+ return err;
> }
>
> int __tipc_nl_bearer_set(struct sk_buff *skb, struct genl_info *info)
>--
>2.43.0
>
Reviewed-by: Tung Nguyen <tung.q.nguyen@xxxxxxxxxxxxxx>