[INET]: Consolidate xxx_frag_alloc()

Just perform the kzalloc() allocation and setup common
fields in the inet_frag_queue(). Then return the result
to the caller to initialize the rest.

The inet_frag_alloc() may return NULL, so check the 
return value before doing the container_of(). This looks 
ugly, but the xxx_frag_alloc() will be removed soon.

The xxx_expire() timer callbacks are patches, 
because the argument is now the inet_frag_queue, not 
the protocol specific queue.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Pavel Emelyanov
2007-10-17 19:45:23 -07:00
committed by David S. Miller
parent 2588fe1d78
commit e521db9d79
5 changed files with 41 additions and 36 deletions

View File

@ -43,6 +43,7 @@ struct inet_frags {
void (*skb_free)(struct sk_buff *);
int (*equal)(struct inet_frag_queue *q1,
struct inet_frag_queue *q2);
void (*frag_expire)(unsigned long data);
};
void inet_frags_init(struct inet_frags *);
@ -54,6 +55,7 @@ void inet_frag_destroy(struct inet_frag_queue *q,
int inet_frag_evictor(struct inet_frags *f);
struct inet_frag_queue *inet_frag_intern(struct inet_frag_queue *q,
struct inet_frags *f, unsigned int hash);
struct inet_frag_queue *inet_frag_alloc(struct inet_frags *f);
static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f)
{