]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/core/sock.c
[NET]: Move the sock_copy() from the header
[karo-tx-linux.git] / net / core / sock.c
index bba9949681ff7e132f84629602814dc7d9aa17d4..fdacf9c8f1cb60149c4c1b347f1febb89fa3c743 100644 (file)
@@ -857,6 +857,20 @@ static inline void sock_lock_init(struct sock *sk)
                        af_family_keys + sk->sk_family);
 }
 
+static void sock_copy(struct sock *nsk, const struct sock *osk)
+{
+#ifdef CONFIG_SECURITY_NETWORK
+       void *sptr = nsk->sk_security;
+#endif
+
+       memcpy(nsk, osk, osk->sk_prot->obj_size);
+       get_net(nsk->sk_net);
+#ifdef CONFIG_SECURITY_NETWORK
+       nsk->sk_security = sptr;
+       security_sk_clone(osk, nsk);
+#endif
+}
+
 /**
  *     sk_alloc - All socket objects are allocated here
  *     @net: the applicable net namespace