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

From: Quentin Armitage
Date: Tue Jun 14 2016 - 10:25:01 EST


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 <quentin@xxxxxxxxxxxxxxx>
---
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 0ca937a..734335a 100644
--- a/net/netfilter/ipvs/ip_vs_sync.c
+++ b/net/netfilter/ipvs/ip_vs_sync.c
@@ -1539,7 +1539,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