|
@@ -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) {
|