mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-18 22:14:16 +00:00 
			
		
		
		
	tipc: Cleanup tipc_nl_bearer_add() error paths
Consolidate the error paths of tipc_nl_bearer_add() under the common label if the function holds rtnl_lock. Signed-off-by: Shigeru Yoshida <syoshida@redhat.com> Reviewed-by: Tung Nguyen <tung.q.nguyen@dektech.com.au> Link: https://lore.kernel.org/r/20240213134058.386123-1-syoshida@redhat.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
		
							parent
							
								
									038ba1dc4e
								
							
						
					
					
						commit
						984328c765
					
				
					 1 changed files with 6 additions and 9 deletions
				
			
		|  | @ -1079,30 +1079,27 @@ int tipc_nl_bearer_add(struct sk_buff *skb, struct genl_info *info) | ||||||
| 	rtnl_lock(); | 	rtnl_lock(); | ||||||
| 	b = tipc_bearer_find(net, name); | 	b = tipc_bearer_find(net, name); | ||||||
| 	if (!b) { | 	if (!b) { | ||||||
| 		rtnl_unlock(); |  | ||||||
| 		NL_SET_ERR_MSG(info->extack, "Bearer not found"); | 		NL_SET_ERR_MSG(info->extack, "Bearer not found"); | ||||||
| 		return -EINVAL; | 		err = -EINVAL; | ||||||
|  | 		goto out; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_TIPC_MEDIA_UDP | #ifdef CONFIG_TIPC_MEDIA_UDP | ||||||
| 	if (attrs[TIPC_NLA_BEARER_UDP_OPTS]) { | 	if (attrs[TIPC_NLA_BEARER_UDP_OPTS]) { | ||||||
| 		if (b->media->type_id != TIPC_MEDIA_TYPE_UDP) { | 		if (b->media->type_id != TIPC_MEDIA_TYPE_UDP) { | ||||||
| 			rtnl_unlock(); |  | ||||||
| 			NL_SET_ERR_MSG(info->extack, "UDP option is unsupported"); | 			NL_SET_ERR_MSG(info->extack, "UDP option is unsupported"); | ||||||
| 			return -EINVAL; | 			err = -EINVAL; | ||||||
|  | 			goto out; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		err = tipc_udp_nl_bearer_add(b, | 		err = tipc_udp_nl_bearer_add(b, | ||||||
| 					     attrs[TIPC_NLA_BEARER_UDP_OPTS]); | 					     attrs[TIPC_NLA_BEARER_UDP_OPTS]); | ||||||
| 		if (err) { |  | ||||||
| 			rtnl_unlock(); |  | ||||||
| 			return err; |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| #endif | #endif | ||||||
|  | out: | ||||||
| 	rtnl_unlock(); | 	rtnl_unlock(); | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return err; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int __tipc_nl_bearer_set(struct sk_buff *skb, struct genl_info *info) | int __tipc_nl_bearer_set(struct sk_buff *skb, struct genl_info *info) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Shigeru Yoshida
						Shigeru Yoshida