]> git.neil.brown.name Git - history.git/commitdiff
[PKT_SCHED]: Fix netem qlen accounting.
authorPatrick McHardy <kaber@coreworks.de>
Wed, 20 Oct 2004 14:57:25 +0000 (07:57 -0700)
committerDavid S. Miller <davem@nuts.davemloft.net>
Wed, 20 Oct 2004 14:57:25 +0000 (07:57 -0700)
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_netem.c

index ae570e4318c586f7ad23840d4366642dbd774655..2747e81e738a32d27313bb45466899feb37594ee 100644 (file)
@@ -195,7 +195,11 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch)
 
                ++q->counter;
                ret = q->qdisc->enqueue(skb, q->qdisc);
-               if (ret)
+               if (likely(ret == NET_XMIT_SUCCESS)) {
+                       sch->q.qlen++;
+                       sch->bstats.bytes += skb->len;
+                       sch->bstats.packets++;
+               } else
                        sch->qstats.drops++;
                return ret;
        }
@@ -487,7 +491,7 @@ static int netem_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
        sch_tree_lock(sch);
        *old = xchg(&q->qdisc, new);
        qdisc_reset(*old);
-       sch->q.qlen = 0;
+       sch->q.qlen = q->delayed.qlen;
        sch_tree_unlock(sch);
 
        return 0;