aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-10-14 00:37:52 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-15 12:26:24 -0700
commite0053ec07e32ec94535c47b10af3377255f00836 (patch)
tree05d74698e2be2ac052fca3132e830c524887a5fd /include
parent[SKBUFF]: Merge common code between copy_skb_header and skb_clone (diff)
downloadlinux-dev-e0053ec07e32ec94535c47b10af3377255f00836.tar.xz
linux-dev-e0053ec07e32ec94535c47b10af3377255f00836.zip
[SKBUFF]: Add skb_morph
This patch creates a new function skb_morph that's just like skb_clone except that it lets user provide the spare skb that will be overwritten by the one that's to be cloned. This will be used by IP fragment reassembly so that we get back the same skb that went in last (rather than the head skb that we get now which requires us to carry around double pointers all over the place). Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/skbuff.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index a656cecd373c..be5bf0b41513 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -357,6 +357,7 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size,
}
extern void kfree_skbmem(struct sk_buff *skb);
+extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src);
extern struct sk_buff *skb_clone(struct sk_buff *skb,
gfp_t priority);
extern struct sk_buff *skb_copy(const struct sk_buff *skb,