mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 12:44:11 +08:00
[DCCP]: Move dccp_[un]hash from ipv4.c to the core
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>
This commit is contained in:
parent
3e0fadc51f
commit
c985ed705f
@ -238,6 +238,7 @@ extern struct sk_buff *dccp_make_response(struct sock *sk,
|
|||||||
|
|
||||||
extern int dccp_connect(struct sock *sk);
|
extern int dccp_connect(struct sock *sk);
|
||||||
extern int dccp_disconnect(struct sock *sk, int flags);
|
extern int dccp_disconnect(struct sock *sk, int flags);
|
||||||
|
extern void dccp_hash(struct sock *sk);
|
||||||
extern void dccp_unhash(struct sock *sk);
|
extern void dccp_unhash(struct sock *sk);
|
||||||
extern int dccp_getsockopt(struct sock *sk, int level, int optname,
|
extern int dccp_getsockopt(struct sock *sk, int level, int optname,
|
||||||
char __user *optval, int __user *optlen);
|
char __user *optval, int __user *optlen);
|
||||||
|
@ -44,18 +44,6 @@ static int dccp_v4_get_port(struct sock *sk, const unsigned short snum)
|
|||||||
inet_csk_bind_conflict);
|
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)
|
int dccp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len)
|
||||||
{
|
{
|
||||||
struct inet_sock *inet = inet_sk(sk);
|
struct inet_sock *inet = inet_sk(sk);
|
||||||
@ -1048,7 +1036,7 @@ struct proto dccp_prot = {
|
|||||||
.sendmsg = dccp_sendmsg,
|
.sendmsg = dccp_sendmsg,
|
||||||
.recvmsg = dccp_recvmsg,
|
.recvmsg = dccp_recvmsg,
|
||||||
.backlog_rcv = dccp_v4_do_rcv,
|
.backlog_rcv = dccp_v4_do_rcv,
|
||||||
.hash = dccp_v4_hash,
|
.hash = dccp_hash,
|
||||||
.unhash = dccp_unhash,
|
.unhash = dccp_unhash,
|
||||||
.accept = inet_csk_accept,
|
.accept = inet_csk_accept,
|
||||||
.get_port = dccp_v4_get_port,
|
.get_port = dccp_v4_get_port,
|
||||||
|
@ -53,7 +53,7 @@ static void dccp_v6_hash(struct sock *sk)
|
|||||||
{
|
{
|
||||||
if (sk->sk_state != DCCP_CLOSED) {
|
if (sk->sk_state != DCCP_CLOSED) {
|
||||||
if (inet_csk(sk)->icsk_af_ops == &dccp_ipv6_mapped) {
|
if (inet_csk(sk)->icsk_af_ops == &dccp_ipv6_mapped) {
|
||||||
dccp_prot.hash(sk);
|
dccp_hash(sk);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
local_bh_disable();
|
local_bh_disable();
|
||||||
|
@ -97,6 +97,20 @@ const char *dccp_state_name(const int state)
|
|||||||
|
|
||||||
EXPORT_SYMBOL_GPL(dccp_state_name);
|
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)
|
int dccp_init_sock(struct sock *sk)
|
||||||
{
|
{
|
||||||
struct dccp_sock *dp = dccp_sk(sk);
|
struct dccp_sock *dp = dccp_sk(sk);
|
||||||
|
Loading…
Reference in New Issue
Block a user