Looks good.

--Justin


On May 1, 2013, at 5:15 PM, Ben Pfaff <b...@nicira.com> wrote:

> When ovs-vswitchd deletes a port with dpif_linux_port_del(), that function
> uses del_channel() to delete the corresponding channel, including closing
> its Netlink socket fd.  However, if the vport gets removed by some other
> process (e.g. "ip link delete" for veths) then this function never gets
> called and thus the channel never gets deleted.
> 
> This commit is a partial fix for the problem by ensuring that if a port
> number gets reused, the old Netlink socket assigned to that port is closed
> before the new one is installed.
> 
> Bug #16784.
> Reported-by: Paul Ingram <p...@nicira.com>
> Signed-off-by: Ben Pfaff <b...@nicira.com>
> ---
> lib/dpif-linux.c |    1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/lib/dpif-linux.c b/lib/dpif-linux.c
> index 39acc9a..933aabe 100644
> --- a/lib/dpif-linux.c
> +++ b/lib/dpif-linux.c
> @@ -337,6 +337,7 @@ add_channel(struct dpif_linux *dpif, uint32_t port_no, 
> struct nl_sock *sock)
>         return errno;
>     }
> 
> +    nl_sock_destroy(dpif->channels[port_no].sock);
>     dpif->channels[port_no].sock = sock;
>     dpif->channels[port_no].last_poll = LLONG_MIN;
> 
> -- 
> 1.7.2.5
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to