git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bluetooth: Fix double L2CAP connection request
[safe/jmp/linux-2.6]
/
include
/
net
/
inet_timewait_sock.h
diff --git
a/include/net/inet_timewait_sock.h
b/include/net/inet_timewait_sock.h
index
07fe0d1
..
4b8ece2
100644
(file)
--- a/
include/net/inet_timewait_sock.h
+++ b/
include/net/inet_timewait_sock.h
@@
-110,7
+110,7
@@
struct inet_timewait_sock {
#define tw_state __tw_common.skc_state
#define tw_reuse __tw_common.skc_reuse
#define tw_bound_dev_if __tw_common.skc_bound_dev_if
#define tw_state __tw_common.skc_state
#define tw_reuse __tw_common.skc_reuse
#define tw_bound_dev_if __tw_common.skc_bound_dev_if
-#define tw_node __tw_common.skc_node
+#define tw_node __tw_common.skc_n
ulls_n
ode
#define tw_bind_node __tw_common.skc_bind_node
#define tw_refcnt __tw_common.skc_refcnt
#define tw_hash __tw_common.skc_hash
#define tw_bind_node __tw_common.skc_bind_node
#define tw_refcnt __tw_common.skc_refcnt
#define tw_hash __tw_common.skc_hash
@@
-128,7
+128,8
@@
struct inet_timewait_sock {
__be16 tw_dport;
__u16 tw_num;
/* And these are ours. */
__be16 tw_dport;
__u16 tw_num;
/* And these are ours. */
- __u8 tw_ipv6only:1;
+ __u8 tw_ipv6only:1,
+ tw_transparent:1;
/* 15 bits hole, try to pack */
__u16 tw_ipv6_offset;
unsigned long tw_ttd;
/* 15 bits hole, try to pack */
__u16 tw_ipv6_offset;
unsigned long tw_ttd;
@@
-136,10
+137,10
@@
struct inet_timewait_sock {
struct hlist_node tw_death_node;
};
struct hlist_node tw_death_node;
};
-static inline void inet_twsk_add_node(struct inet_timewait_sock *tw,
- struct hlist_head *list)
+static inline void inet_twsk_add_node
_rcu
(struct inet_timewait_sock *tw,
+ struct hlist_
nulls_
head *list)
{
{
- hlist_
add_head
(&tw->tw_node, list);
+ hlist_
nulls_add_head_rcu
(&tw->tw_node, list);
}
static inline void inet_twsk_add_bind_node(struct inet_timewait_sock *tw,
}
static inline void inet_twsk_add_bind_node(struct inet_timewait_sock *tw,
@@
-174,7
+175,7
@@
static inline int inet_twsk_del_dead_node(struct inet_timewait_sock *tw)
}
#define inet_twsk_for_each(tw, node, head) \
}
#define inet_twsk_for_each(tw, node, head) \
- hlist_for_each_entry(tw, node, head, tw_node)
+ hlist_
nulls_
for_each_entry(tw, node, head, tw_node)
#define inet_twsk_for_each_inmate(tw, node, jail) \
hlist_for_each_entry(tw, node, jail, tw_death_node)
#define inet_twsk_for_each_inmate(tw, node, jail) \
hlist_for_each_entry(tw, node, jail, tw_death_node)
@@
-208,6
+209,9
@@
extern void inet_twsk_schedule(struct inet_timewait_sock *tw,
extern void inet_twsk_deschedule(struct inet_timewait_sock *tw,
struct inet_timewait_death_row *twdr);
extern void inet_twsk_deschedule(struct inet_timewait_sock *tw,
struct inet_timewait_death_row *twdr);
+extern void inet_twsk_purge(struct net *net, struct inet_hashinfo *hashinfo,
+ struct inet_timewait_death_row *twdr, int family);
+
static inline
struct net *twsk_net(const struct inet_timewait_sock *twsk)
{
static inline
struct net *twsk_net(const struct inet_timewait_sock *twsk)
{
@@
-219,7
+223,7
@@
struct net *twsk_net(const struct inet_timewait_sock *twsk)
}
static inline
}
static inline
-void twsk_net_set(struct inet_timewait_sock *twsk,
const
struct net *net)
+void twsk_net_set(struct inet_timewait_sock *twsk, struct net *net)
{
#ifdef CONFIG_NET_NS
twsk->tw_net = net;
{
#ifdef CONFIG_NET_NS
twsk->tw_net = net;