sock: Use sock_owned_by_user_nocheck() instead of sk_lock.owned.
This patch moves sock_release_ownership() down in include/net/sock.h and replaces some sk_lock.owned tests with sock_owned_by_user_nocheck(). Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.co.jp> Link: https://lore.kernel.org/r/20211208062158.54132-1-kuniyu@amazon.co.jp Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
be3158290d
commit
33d60fbd21
@@ -3292,7 +3292,7 @@ void lock_sock_nested(struct sock *sk, int subclass)
|
||||
|
||||
might_sleep();
|
||||
spin_lock_bh(&sk->sk_lock.slock);
|
||||
if (sk->sk_lock.owned)
|
||||
if (sock_owned_by_user_nocheck(sk))
|
||||
__lock_sock(sk);
|
||||
sk->sk_lock.owned = 1;
|
||||
spin_unlock_bh(&sk->sk_lock.slock);
|
||||
@@ -3323,7 +3323,7 @@ bool __lock_sock_fast(struct sock *sk) __acquires(&sk->sk_lock.slock)
|
||||
might_sleep();
|
||||
spin_lock_bh(&sk->sk_lock.slock);
|
||||
|
||||
if (!sk->sk_lock.owned) {
|
||||
if (!sock_owned_by_user_nocheck(sk)) {
|
||||
/*
|
||||
* Fast path return with bottom halves disabled and
|
||||
* sock::sk_lock.slock held.
|
||||
|
||||
Reference in New Issue
Block a user