net: kill sk_change_net and sk_release_kernel
authorEric W. Biederman <ebiederm@xmission.com>
Sat, 9 May 2015 02:12:13 +0000 (21:12 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 May 2015 14:50:18 +0000 (10:50 -0400)
These functions are no longer needed and no longer used kill them.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sock.h
net/core/sock.c

index 9e6b2c0b47410f58136609b23775b448f15b4782..d882f4c8e438ccc81cc88e245a1b004f67f45aa5 100644 (file)
@@ -1518,7 +1518,6 @@ static inline void unlock_sock_fast(struct sock *sk, bool slow)
 struct sock *sk_alloc(struct net *net, int family, gfp_t priority,
                      struct proto *prot, int kern);
 void sk_free(struct sock *sk);
-void sk_release_kernel(struct sock *sk);
 struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority);
 
 struct sk_buff *sock_wmalloc(struct sock *sk, unsigned long size, int force,
@@ -2194,22 +2193,6 @@ void sock_net_set(struct sock *sk, struct net *net)
        write_pnet(&sk->sk_net, net);
 }
 
-/*
- * Kernel sockets, f.e. rtnl or icmp_socket, are a part of a namespace.
- * They should not hold a reference to a namespace in order to allow
- * to stop it.
- * Sockets after sk_change_net should be released using sk_release_kernel
- */
-static inline void sk_change_net(struct sock *sk, struct net *net)
-{
-       struct net *current_net = sock_net(sk);
-
-       if (!net_eq(current_net, net)) {
-               put_net(current_net);
-               sock_net_set(sk, net);
-       }
-}
-
 static inline struct sock *skb_steal_sock(struct sk_buff *skb)
 {
        if (skb->sk) {
index 9e8968e9ebeb3ff19aab63d99e558f919bb5609d..c18738a795b06eee89824eb6e54d5adf0fca2e98 100644 (file)
@@ -1466,25 +1466,6 @@ void sk_free(struct sock *sk)
 }
 EXPORT_SYMBOL(sk_free);
 
-/*
- * Last sock_put should drop reference to sk->sk_net. It has already
- * been dropped in sk_change_net. Taking reference to stopping namespace
- * is not an option.
- * Take reference to a socket to remove it from hash _alive_ and after that
- * destroy it in the context of init_net.
- */
-void sk_release_kernel(struct sock *sk)
-{
-       if (sk == NULL || sk->sk_socket == NULL)
-               return;
-
-       sock_hold(sk);
-       sock_net_set(sk, get_net(&init_net));
-       sock_release(sk->sk_socket);
-       sock_put(sk);
-}
-EXPORT_SYMBOL(sk_release_kernel);
-
 static void sk_update_clone(const struct sock *sk, struct sock *newsk)
 {
        if (mem_cgroup_sockets_enabled && sk->sk_cgrp)