On 10/12/17 7:51 AM, Roman Mashak wrote:
> v2:
>  Return err immediately if nbp_vlan_delete() fails (pointed by David Ahern)
> 
> Signed-off-by: Roman Mashak <m...@mojatatu.com>
> ---
>  net/bridge/br_netlink.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
> index f0e8268..1efdd48 100644
> --- a/net/bridge/br_netlink.c
> +++ b/net/bridge/br_netlink.c
> @@ -527,11 +527,13 @@ static int br_vlan_info(struct net_bridge *br, struct 
> net_bridge_port *p,
>  
>       case RTM_DELLINK:
>               if (p) {
> -                     nbp_vlan_delete(p, vinfo->vid);
> +                     err = nbp_vlan_delete(p, vinfo->vid);
> +                     if (err)
> +                             break;

I'm not sure a break is the right thing to do. Seems like you leave it
in a half configured state.

>                       if (vinfo->flags & BRIDGE_VLAN_INFO_MASTER)
> -                             br_vlan_delete(p->br, vinfo->vid);
> +                             err = br_vlan_delete(p->br, vinfo->vid);
>               } else {
> -                     br_vlan_delete(br, vinfo->vid);
> +                     err = br_vlan_delete(br, vinfo->vid);
>               }
>               break;
>       }
> 

Why do you want to return the error code here? Walking the code paths
seems like ENOENT or err from switchdev_port_obj_del are the 2 error
possibilities.

Reply via email to