Re: [PATCH 4/5] ipvs: Lock socket before setting SK_CAN_REUSE
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
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
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