diff options
| -rw-r--r-- | net/netlink/af_netlink.c | 3 | ||||
| -rw-r--r-- | net/sctp/socket.c | 4 | ||||
| -rw-r--r-- | net/unix/af_unix.c | 2 |
3 files changed, 9 insertions, 0 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index a2071dcfe9e8..c7d76579bf3c 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c | |||
| @@ -452,7 +452,10 @@ static int netlink_create(struct net *net, struct socket *sock, int protocol) | |||
| 452 | if (err < 0) | 452 | if (err < 0) |
| 453 | goto out_module; | 453 | goto out_module; |
| 454 | 454 | ||
| 455 | local_bh_disable(); | ||
| 455 | sock_prot_inuse_add(net, &netlink_proto, 1); | 456 | sock_prot_inuse_add(net, &netlink_proto, 1); |
| 457 | local_bh_enable(); | ||
| 458 | |||
| 456 | nlk = nlk_sk(sock->sk); | 459 | nlk = nlk_sk(sock->sk); |
| 457 | nlk->module = module; | 460 | nlk->module = module; |
| 458 | out: | 461 | out: |
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 0c70eff0b757..f03af84edf63 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
| @@ -3614,7 +3614,11 @@ SCTP_STATIC int sctp_init_sock(struct sock *sk) | |||
| 3614 | 3614 | ||
| 3615 | SCTP_DBG_OBJCNT_INC(sock); | 3615 | SCTP_DBG_OBJCNT_INC(sock); |
| 3616 | atomic_inc(&sctp_sockets_allocated); | 3616 | atomic_inc(&sctp_sockets_allocated); |
| 3617 | |||
| 3618 | local_bh_disable(); | ||
| 3617 | sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); | 3619 | sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); |
| 3620 | local_bh_enable(); | ||
| 3621 | |||
| 3618 | return 0; | 3622 | return 0; |
| 3619 | } | 3623 | } |
| 3620 | 3624 | ||
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index e1ca8f744ca5..a45a9f7369ed 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c | |||
| @@ -361,7 +361,9 @@ static void unix_sock_destructor(struct sock *sk) | |||
| 361 | unix_release_addr(u->addr); | 361 | unix_release_addr(u->addr); |
| 362 | 362 | ||
| 363 | atomic_dec(&unix_nr_socks); | 363 | atomic_dec(&unix_nr_socks); |
| 364 | local_bh_disable(); | ||
| 364 | sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); | 365 | sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); |
| 366 | local_bh_enable(); | ||
| 365 | #ifdef UNIX_REFCNT_DEBUG | 367 | #ifdef UNIX_REFCNT_DEBUG |
| 366 | printk(KERN_DEBUG "UNIX %p is destroyed, %d are still alive.\n", sk, | 368 | printk(KERN_DEBUG "UNIX %p is destroyed, %d are still alive.\n", sk, |
| 367 | atomic_read(&unix_nr_socks)); | 369 | atomic_read(&unix_nr_socks)); |
