struct tc_hfsc_stats xstats;
 
        cl->qstats.qlen = cl->qdisc->q.qlen;
+       cl->qstats.backlog = cl->qdisc->qstats.backlog;
        xstats.level   = cl->level;
        xstats.period  = cl->cl_vtperiod;
        xstats.work    = cl->cl_total;
        struct hfsc_sched *q = qdisc_priv(sch);
        unsigned char *b = skb_tail_pointer(skb);
        struct tc_hfsc_qopt qopt;
+       struct hfsc_class *cl;
+       struct hlist_node *n;
+       unsigned int i;
+
+       sch->qstats.backlog = 0;
+       for (i = 0; i < q->clhash.hashsize; i++) {
+               hlist_for_each_entry(cl, n, &q->clhash.hash[i], cl_common.hnode)
+                       sch->qstats.backlog += cl->qdisc->qstats.backlog;
+       }
 
        qopt.defcls = q->defcls;
        NLA_PUT(skb, TCA_OPTIONS, sizeof(qopt), &qopt);