net: cleanup and document skb fclone layout
Lets use a proper structure to clearly document and implement skb fast clones. Then, we might experiment more easily alternative layouts. This patch adds a new skb_fclone_busy() helper, used by tcp and xfrm, to stop leaking of implementation details. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
b248230c34
commit
d0bf4a9e92
@@ -2110,10 +2110,7 @@ bool tcp_schedule_loss_probe(struct sock *sk)
|
||||
static bool skb_still_in_host_queue(const struct sock *sk,
|
||||
const struct sk_buff *skb)
|
||||
{
|
||||
const struct sk_buff *fclone = skb + 1;
|
||||
|
||||
if (unlikely(skb->fclone == SKB_FCLONE_ORIG &&
|
||||
fclone->fclone == SKB_FCLONE_CLONE)) {
|
||||
if (unlikely(skb_fclone_busy(skb))) {
|
||||
NET_INC_STATS_BH(sock_net(sk),
|
||||
LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES);
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user