fq_codel: fix NET_XMIT_CN behavior
authorEric Dumazet <edumazet@google.com>
Sat, 4 Jun 2016 19:55:13 +0000 (12:55 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 7 Jun 2016 21:49:56 +0000 (14:49 -0700)
commit80e509db54c81247b32fcb75bb1730fc789b893d
tree6252613ac72781d36051be76b3248cce6f9c3e9a
parent5b6c1b4d46b0dae4edea636a776d09f2064f4cd7
fq_codel: fix NET_XMIT_CN behavior

My prior attempt to fix the backlogs of parents failed.

If we return NET_XMIT_CN, our parents wont increase their backlog,
so our qdisc_tree_reduce_backlog() should take this into account.

v2: Florian Westphal pointed out that we could drop the packet,
so we need to save qdisc_pkt_len(skb) in a temp variable before
calling fq_codel_drop()

Fixes: 9d18562a2278 ("fq_codel: add batch ability to fq_codel_drop()")
Fixes: 2ccccf5fb43f ("net_sched: update hierarchical backlog too")
Reported-by: Stas Nichiporovich <stasn77@gmail.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: WANG Cong <xiyou.wangcong@gmail.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_fq_codel.c