@@ -944,7 +944,7 @@ static int do_ip_setsockopt(struct sock *sk, int level, int optname,
err = 0;
if (needs_rtnl)
rtnl_lock();
- lock_sock(sk);
+ lock_sock_sockopt(sk, optval);
switch (optname) {
case IP_OPTIONS:
@@ -1368,13 +1368,13 @@ static int do_ip_setsockopt(struct sock *sk, int level, int optname,
err = -ENOPROTOOPT;
break;
}
- release_sock(sk);
+ release_sock_sockopt(sk, optval);
if (needs_rtnl)
rtnl_unlock();
return err;
e_inval:
- release_sock(sk);
+ release_sock_sockopt(sk, optval);
if (needs_rtnl)
rtnl_unlock();
return -EINVAL;
Similar to the earlier patch that avoids sock_setsockopt() from taking sk lock when called from bpf. This patch changes do_ip_setsockopt() to use the {lock,release}_sock_sockopt(). Signed-off-by: Martin KaFai Lau <kafai@fb.com> --- net/ipv4/ip_sockglue.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)