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/net | |
| 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/net')
| -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 | { |
