Merge "net: sockev: avoid races between sockev and socket_close"
This commit is contained in:
commit
eddc389f5a
1 changed files with 6 additions and 2 deletions
|
@ -73,11 +73,13 @@ static int sockev_client_cb(struct notifier_block *nb,
|
|||
|
||||
sock = (struct socket *)data;
|
||||
if (!socknlmsgsk || !sock)
|
||||
goto done;
|
||||
goto sk_null;
|
||||
|
||||
sk = sock->sk;
|
||||
if (!sk)
|
||||
goto done;
|
||||
goto sk_null;
|
||||
|
||||
sock_hold(sk);
|
||||
|
||||
if (sk->sk_family != AF_INET && sk->sk_family != AF_INET6)
|
||||
goto done;
|
||||
|
@ -108,6 +110,8 @@ static int sockev_client_cb(struct notifier_block *nb,
|
|||
smsg->skflags = sk->sk_flags;
|
||||
nlmsg_notify(socknlmsgsk, skb, 0, SKNLGRP_SOCKEV, 0, GFP_KERNEL);
|
||||
done:
|
||||
sock_put(sk);
|
||||
sk_null:
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue