net_sched: update hierarchical backlog too
[firefly-linux-kernel-4.4.55.git] / net / sched / sch_drr.c
index c76cdd423b6fed40f8a09b12b8aa2e53f4bba761..d6e3ad43cecbd51c860c78690ecdf5fbf6713963 100644 (file)
@@ -53,9 +53,10 @@ static struct drr_class *drr_find_class(struct Qdisc *sch, u32 classid)
 static void drr_purge_queue(struct drr_class *cl)
 {
        unsigned int len = cl->qdisc->q.qlen;
+       unsigned int backlog = cl->qdisc->qstats.backlog;
 
        qdisc_reset(cl->qdisc);
-       qdisc_tree_decrease_qlen(cl->qdisc, len);
+       qdisc_tree_reduce_backlog(cl->qdisc, len, backlog);
 }
 
 static const struct nla_policy drr_policy[TCA_DRR_MAX + 1] = {