[DCCP]: Move dccp_[un]hash from ipv4.c to the core
authorArnaldo Carvalho de Melo <acme@mandriva.com>
Tue, 21 Mar 2006 05:23:39 +0000 (21:23 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Mar 2006 05:23:39 +0000 (21:23 -0800)
As this is used by both ipv4 and ipv6 and is not ipv4 specific.

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dccp/dccp.h
net/dccp/ipv4.c
net/dccp/ipv6.c
net/dccp/proto.c

index 8f3903be5598782eeaf0b657b813ea92d572a280..b6ea4cc126081f7f0925f0ab132b067d3ba30065 100644 (file)
@@ -238,6 +238,7 @@ extern struct sk_buff       *dccp_make_response(struct sock *sk,
 
 extern int        dccp_connect(struct sock *sk);
 extern int        dccp_disconnect(struct sock *sk, int flags);
+extern void       dccp_hash(struct sock *sk);
 extern void       dccp_unhash(struct sock *sk);
 extern int        dccp_getsockopt(struct sock *sk, int level, int optname,
                                   char __user *optval, int __user *optlen);
index b26a4f8df4dc1c597e543e3067f2a9ca0c39f805..34d1b119b7208cc3c93ab9de7241a0b1c185c05d 100644 (file)
@@ -44,18 +44,6 @@ static int dccp_v4_get_port(struct sock *sk, const unsigned short snum)
                                 inet_csk_bind_conflict);
 }
 
-static void dccp_v4_hash(struct sock *sk)
-{
-       inet_hash(&dccp_hashinfo, sk);
-}
-
-void dccp_unhash(struct sock *sk)
-{
-       inet_unhash(&dccp_hashinfo, sk);
-}
-
-EXPORT_SYMBOL_GPL(dccp_unhash);
-
 int dccp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len)
 {
        struct inet_sock *inet = inet_sk(sk);
@@ -1048,7 +1036,7 @@ struct proto dccp_prot = {
        .sendmsg                = dccp_sendmsg,
        .recvmsg                = dccp_recvmsg,
        .backlog_rcv            = dccp_v4_do_rcv,
-       .hash                   = dccp_v4_hash,
+       .hash                   = dccp_hash,
        .unhash                 = dccp_unhash,
        .accept                 = inet_csk_accept,
        .get_port               = dccp_v4_get_port,
index 84651bc6453b7e87fe207e1b671acdb6e3a6b16e..904967bf2fe943af6cce03ed921468baaac6153e 100644 (file)
@@ -53,7 +53,7 @@ static void dccp_v6_hash(struct sock *sk)
 {
        if (sk->sk_state != DCCP_CLOSED) {
                if (inet_csk(sk)->icsk_af_ops == &dccp_ipv6_mapped) {
-                       dccp_prot.hash(sk);
+                       dccp_hash(sk);
                        return;
                }
                local_bh_disable();
index 1c32def26533f8c656908566565ab93b8ddb11dc..64806fbf44de7667ececbc749a10e485432bc4a4 100644 (file)
@@ -97,6 +97,20 @@ const char *dccp_state_name(const int state)
 
 EXPORT_SYMBOL_GPL(dccp_state_name);
 
+void dccp_hash(struct sock *sk)
+{
+       inet_hash(&dccp_hashinfo, sk);
+}
+
+EXPORT_SYMBOL_GPL(dccp_hash);
+
+void dccp_unhash(struct sock *sk)
+{
+       inet_unhash(&dccp_hashinfo, sk);
+}
+
+EXPORT_SYMBOL_GPL(dccp_unhash);
+
 int dccp_init_sock(struct sock *sk)
 {
        struct dccp_sock *dp = dccp_sk(sk);