diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 480184a..a2071dc 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -452,6 +452,7 @@ static int netlink_create(struct net *net, struct socket *sock, int protocol) if (err < 0) goto out_module; + sock_prot_inuse_add(net, &netlink_proto, 1); nlk = nlk_sk(sock->sk); nlk->module = module; out: @@ -511,6 +512,7 @@ static int netlink_release(struct socket *sock) kfree(nlk->groups); nlk->groups = NULL; + sock_prot_inuse_add(sock_net(sk), &netlink_proto, -1); sock_put(sk); return 0; }