]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/sched/sch_sfq.c
Remove obsolete #include <linux/config.h>
[karo-tx-linux.git] / net / sched / sch_sfq.c
index 86d8da0cbd027262024277ea1ba7fe14164f7d4f..d0d6e595a78c8f824480b3f656815c2c0942839d 100644 (file)
@@ -9,7 +9,6 @@
  * Authors:    Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
@@ -232,6 +231,7 @@ static unsigned int sfq_drop(struct Qdisc *sch)
                sfq_dec(q, x);
                sch->q.qlen--;
                sch->qstats.drops++;
+               sch->qstats.backlog -= len;
                return len;
        }
 
@@ -248,6 +248,7 @@ static unsigned int sfq_drop(struct Qdisc *sch)
                sch->q.qlen--;
                q->ht[q->hash[d]] = SFQ_DEPTH;
                sch->qstats.drops++;
+               sch->qstats.backlog -= len;
                return len;
        }
 
@@ -266,6 +267,7 @@ sfq_enqueue(struct sk_buff *skb, struct Qdisc* sch)
                q->ht[hash] = x = q->dep[SFQ_DEPTH].next;
                q->hash[x] = hash;
        }
+       sch->qstats.backlog += skb->len;
        __skb_queue_tail(&q->qs[x], skb);
        sfq_inc(q, x);
        if (q->qs[x].qlen == 1) {               /* The flow is new */
@@ -301,6 +303,7 @@ sfq_requeue(struct sk_buff *skb, struct Qdisc* sch)
                q->ht[hash] = x = q->dep[SFQ_DEPTH].next;
                q->hash[x] = hash;
        }
+       sch->qstats.backlog += skb->len;
        __skb_queue_head(&q->qs[x], skb);
        sfq_inc(q, x);
        if (q->qs[x].qlen == 1) {               /* The flow is new */
@@ -344,6 +347,7 @@ sfq_dequeue(struct Qdisc* sch)
        skb = __skb_dequeue(&q->qs[a]);
        sfq_dec(q, a);
        sch->q.qlen--;
+       sch->qstats.backlog -= skb->len;
 
        /* Is the slot empty? */
        if (q->qs[a].qlen == 0) {