|
@@ -737,9 +737,11 @@ void qdisc_tree_decrease_qlen(struct Qdisc *sch, unsigned int n)
|
|
|
const struct Qdisc_class_ops *cops;
|
|
|
unsigned long cl;
|
|
|
u32 parentid;
|
|
|
+ int drops;
|
|
|
|
|
|
if (n == 0)
|
|
|
return;
|
|
|
+ drops = max_t(int, n, 0);
|
|
|
while ((parentid = sch->parent)) {
|
|
|
if (TC_H_MAJ(parentid) == TC_H_MAJ(TC_H_INGRESS))
|
|
|
return;
|
|
@@ -756,6 +758,7 @@ void qdisc_tree_decrease_qlen(struct Qdisc *sch, unsigned int n)
|
|
|
cops->put(sch, cl);
|
|
|
}
|
|
|
sch->q.qlen -= n;
|
|
|
+ sch->qstats.drops += drops;
|
|
|
}
|
|
|
}
|
|
|
EXPORT_SYMBOL(qdisc_tree_decrease_qlen);
|