diff options
Diffstat (limited to 'net/xfrm/xfrm_output.c')
| -rw-r--r-- | net/xfrm/xfrm_output.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c index fbcedbe33190..68ada2ca4b60 100644 --- a/net/xfrm/xfrm_output.c +++ b/net/xfrm/xfrm_output.c @@ -38,6 +38,18 @@ static int xfrm_skb_check_space(struct sk_buff *skb)  	return pskb_expand_head(skb, nhead, ntail, GFP_ATOMIC);  } +/* Children define the path of the packet through the + * Linux networking.  Thus, destinations are stackable. + */ + +static struct dst_entry *skb_dst_pop(struct sk_buff *skb) +{ +	struct dst_entry *child = dst_clone(skb_dst(skb)->child); + +	skb_dst_drop(skb); +	return child; +} +  static int xfrm_output_one(struct sk_buff *skb, int err)  {  	struct dst_entry *dst = skb_dst(skb);  |