diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2007-10-17 22:47:21 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-10-17 22:47:21 -0400 |
commit | abd6523d15f40bfee14652619a31a7f65f77f581 (patch) | |
tree | ad5692b3c115c4859b99a5e87db8d4b2d991e5a8 /include | |
parent | c6fda282294da882f8d8cc4c513940277dd380f5 (diff) |
[INET]: Consolidate xxx_find() in fragment management
Here we need another callback ->match to check whether the
entry found in hash matches the key passed. The key used
is the same as the creation argument for inet_frag_create.
Yet again, this ->match is the same for netfilter and ipv6.
Running a frew steps forward - this callback will later
replace the ->equal one.
Since the inet_frag_find() uses the already consolidated
inet_frag_create() remove the xxx_frag_create from protocol
codes.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/inet_frag.h | 6 | ||||
-rw-r--r-- | include/net/ipv6.h | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h index e33072b9fd91..64299266a868 100644 --- a/include/net/inet_frag.h +++ b/include/net/inet_frag.h | |||
@@ -45,6 +45,8 @@ struct inet_frags { | |||
45 | void (*skb_free)(struct sk_buff *); | 45 | void (*skb_free)(struct sk_buff *); |
46 | int (*equal)(struct inet_frag_queue *q1, | 46 | int (*equal)(struct inet_frag_queue *q1, |
47 | struct inet_frag_queue *q2); | 47 | struct inet_frag_queue *q2); |
48 | int (*match)(struct inet_frag_queue *q, | ||
49 | void *arg); | ||
48 | void (*frag_expire)(unsigned long data); | 50 | void (*frag_expire)(unsigned long data); |
49 | }; | 51 | }; |
50 | 52 | ||
@@ -55,8 +57,8 @@ void inet_frag_kill(struct inet_frag_queue *q, struct inet_frags *f); | |||
55 | void inet_frag_destroy(struct inet_frag_queue *q, | 57 | void inet_frag_destroy(struct inet_frag_queue *q, |
56 | struct inet_frags *f, int *work); | 58 | struct inet_frags *f, int *work); |
57 | int inet_frag_evictor(struct inet_frags *f); | 59 | int inet_frag_evictor(struct inet_frags *f); |
58 | struct inet_frag_queue *inet_frag_create(struct inet_frags *f, | 60 | struct inet_frag_queue *inet_frag_find(struct inet_frags *f, void *key, |
59 | void *create_arg, unsigned int hash); | 61 | unsigned int hash); |
60 | 62 | ||
61 | static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f) | 63 | static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f) |
62 | { | 64 | { |
diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 9dc99bf5cf0e..005853a33ef6 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h | |||
@@ -387,6 +387,7 @@ struct ip6_create_arg { | |||
387 | }; | 387 | }; |
388 | 388 | ||
389 | void ip6_frag_init(struct inet_frag_queue *q, void *a); | 389 | void ip6_frag_init(struct inet_frag_queue *q, void *a); |
390 | int ip6_frag_match(struct inet_frag_queue *q, void *a); | ||
390 | 391 | ||
391 | static inline int ipv6_addr_any(const struct in6_addr *a) | 392 | static inline int ipv6_addr_any(const struct in6_addr *a) |
392 | { | 393 | { |