mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 13:14:07 +08:00
X.25 remove bkl in accept
Accept already has socket locking. [ Extend socket locking over TCP_LISTEN state test. -DaveM ] Signed-off-by: Andrew Hendry <andrew.hendry@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
90c27297a9
commit
141646ce56
@ -869,8 +869,7 @@ static int x25_accept(struct socket *sock, struct socket *newsock, int flags)
|
||||
struct sk_buff *skb;
|
||||
int rc = -EINVAL;
|
||||
|
||||
lock_kernel();
|
||||
if (!sk || sk->sk_state != TCP_LISTEN)
|
||||
if (!sk)
|
||||
goto out;
|
||||
|
||||
rc = -EOPNOTSUPP;
|
||||
@ -878,6 +877,10 @@ static int x25_accept(struct socket *sock, struct socket *newsock, int flags)
|
||||
goto out;
|
||||
|
||||
lock_sock(sk);
|
||||
rc = -EINVAL;
|
||||
if (sk->sk_state != TCP_LISTEN)
|
||||
goto out2;
|
||||
|
||||
rc = x25_wait_for_data(sk, sk->sk_rcvtimeo);
|
||||
if (rc)
|
||||
goto out2;
|
||||
@ -897,7 +900,6 @@ static int x25_accept(struct socket *sock, struct socket *newsock, int flags)
|
||||
out2:
|
||||
release_sock(sk);
|
||||
out:
|
||||
unlock_kernel();
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user