dst: Add __skb_dst_copy() variation
This variation on skb_dst_copy() doesn't require two skbs. Signed-off-by: Joe Stringer <joestringer@nicira.com> Acked-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
5b49004724
Коммит
e79e259588
|
@ -289,13 +289,18 @@ static inline void skb_dst_drop(struct sk_buff *skb)
|
|||
}
|
||||
}
|
||||
|
||||
static inline void skb_dst_copy(struct sk_buff *nskb, const struct sk_buff *oskb)
|
||||
static inline void __skb_dst_copy(struct sk_buff *nskb, unsigned long refdst)
|
||||
{
|
||||
nskb->_skb_refdst = oskb->_skb_refdst;
|
||||
nskb->_skb_refdst = refdst;
|
||||
if (!(nskb->_skb_refdst & SKB_DST_NOREF))
|
||||
dst_clone(skb_dst(nskb));
|
||||
}
|
||||
|
||||
static inline void skb_dst_copy(struct sk_buff *nskb, const struct sk_buff *oskb)
|
||||
{
|
||||
__skb_dst_copy(nskb, oskb->_skb_refdst);
|
||||
}
|
||||
|
||||
/**
|
||||
* skb_dst_force - makes sure skb dst is refcounted
|
||||
* @skb: buffer
|
||||
|
|
Загрузка…
Ссылка в новой задаче