提交 c8e18129 编写于 作者: K Konstantin Khlebnikov 提交者: David S. Miller

net_sched: always reset qdisc backlog in qdisc_reset()

SKB stored in qdisc->gso_skb also counted into backlog.

Some qdiscs don't reset backlog to zero in ->reset(),
for example sfq just dequeue and free all queued skb.
Signed-off-by: NKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
Fixes: 2ccccf5f ("net_sched: update hierarchical backlog too")
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 6cc40834
...@@ -685,6 +685,7 @@ void qdisc_reset(struct Qdisc *qdisc) ...@@ -685,6 +685,7 @@ void qdisc_reset(struct Qdisc *qdisc)
qdisc->gso_skb = NULL; qdisc->gso_skb = NULL;
} }
qdisc->q.qlen = 0; qdisc->q.qlen = 0;
qdisc->qstats.backlog = 0;
} }
EXPORT_SYMBOL(qdisc_reset); EXPORT_SYMBOL(qdisc_reset);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册