[Devel] [PATCH rh7] ve, net: Fix unbalanced double spin_unlock() in tcp_v4_kill_ve_sockets()

Vasily Averin vvs at odin.com
Tue May 19 07:54:37 PDT 2015


1) how about rh6?
2) how about spin_unlock(lock) ?

On 19.05.2015 17:43, Kirill Tkhai wrote:
> Double loop is here, "break works is not as expected".
> 
> Signed-off-by: Kirill Tkhai <ktkhai at odin.com>
> ---
>  net/ipv4/tcp_ipv4.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
> index 532edea..0e990c2 100644
> --- a/net/ipv4/tcp_ipv4.c
> +++ b/net/ipv4/tcp_ipv4.c
> @@ -2880,7 +2880,7 @@ void tcp_v4_kill_ve_sockets(struct ve_struct *envid)
>  					retry = 1;
>  					bh_unlock_sock(sk);
>  					sock_put(sk);
> -					break;
> +					goto enable_bh;
>  				}
>  				/* sk might have disappeared from the hash before
>  				 * we got the lock */
> @@ -2893,6 +2893,7 @@ void tcp_v4_kill_ve_sockets(struct ve_struct *envid)
>  		}
>  		spin_unlock(lock);
>  	}
> +enable_bh:
>  	local_bh_enable();
>  	if (retry) {
>  		schedule_timeout_interruptible(HZ);
> 
> _______________________________________________
> Devel mailing list
> Devel at openvz.org
> https://lists.openvz.org/mailman/listinfo/devel
> 



More information about the Devel mailing list