Re: [PATCH 4/5] ipvs: Lock socket before setting SK_CAN_REUSE

2016-06-13 Thread Eric Dumazet
On Mon, 2016-06-13 at 20:12 -0700, Eric Dumazet wrote:

> 
> Have you tested this patch ?

Hmm, please ignore this question ;)




Re: [PATCH 4/5] ipvs: Lock socket before setting SK_CAN_REUSE

2016-06-13 Thread Eric Dumazet
On Tue, 2016-06-14 at 02:43 +0100, Quentin Armitage wrote:
> When other settings are changed in the socket it is locked, so
> lock the socket before setting SK_CAN_REUSE.
> 
> Signed-off-by: Quentin Armitage 
> ---
>  net/netfilter/ipvs/ip_vs_sync.c |2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
> index 29d73d8..dfac9ef 100644
> --- a/net/netfilter/ipvs/ip_vs_sync.c
> +++ b/net/netfilter/ipvs/ip_vs_sync.c
> @@ -1540,7 +1540,9 @@ static struct socket *make_receive_sock(struct 
> netns_ipvs *ipvs, int id, int ifi
>   }
>  
>   /* it is equivalent to the REUSEADDR option in user-space */
> + lock_sock(sock->sk);
>   sock->sk->sk_reuse = SK_CAN_REUSE;
> + release_sock(sock->sk);
>   result = sysctl_sync_sock_size(ipvs);
>   if (result > 0)
>   set_sock_size(sock->sk, 0, result);


Have you tested this patch ?





[PATCH 4/5] ipvs: Lock socket before setting SK_CAN_REUSE

2016-06-13 Thread Quentin Armitage
When other settings are changed in the socket it is locked, so
lock the socket before setting SK_CAN_REUSE.

Signed-off-by: Quentin Armitage 
---
 net/netfilter/ipvs/ip_vs_sync.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
index 29d73d8..dfac9ef 100644
--- a/net/netfilter/ipvs/ip_vs_sync.c
+++ b/net/netfilter/ipvs/ip_vs_sync.c
@@ -1540,7 +1540,9 @@ static struct socket *make_receive_sock(struct netns_ipvs 
*ipvs, int id, int ifi
}
 
/* it is equivalent to the REUSEADDR option in user-space */
+   lock_sock(sock->sk);
sock->sk->sk_reuse = SK_CAN_REUSE;
+   release_sock(sock->sk);
result = sysctl_sync_sock_size(ipvs);
if (result > 0)
set_sock_size(sock->sk, 0, result);
-- 
1.7.7.6