diff options
| author | Thomas Graf <tgraf@suug.ch> | 2004-10-21 08:24:14 -0700 |
|---|---|---|
| committer | David S. Miller <davem@nuts.davemloft.net> | 2004-10-21 08:24:14 -0700 |
| commit | ba3bbff5661a204f58357daef19e409a44ed9b22 (patch) | |
| tree | 3f38f4df2ae07654cacbfdf4480a92aa33657eb0 | |
| parent | 176b40a39122ae442115aa9fa45c743ad5c2150b (diff) | |
[PKT_SCHED]: CBQ: use dump_stats
Makes CBQ use dump_stats qdisc op to provide xstats.
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | net/sched/sch_cbq.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c index ec3d4cb33b70..56259e21a0b1 100644 --- a/net/sched/sch_cbq.c +++ b/net/sched/sch_cbq.c @@ -1633,13 +1633,6 @@ static int cbq_dump(struct Qdisc *sch, struct sk_buff *skb) if (cbq_dump_attr(skb, &q->link) < 0) goto rtattr_failure; rta->rta_len = skb->tail - b; - spin_lock_bh(&sch->dev->queue_lock); - q->link.xstats.avgidle = q->link.avgidle; - if (cbq_copy_xstats(skb, &q->link.xstats)) { - spin_unlock_bh(&sch->dev->queue_lock); - goto rtattr_failure; - } - spin_unlock_bh(&sch->dev->queue_lock); return skb->len; rtattr_failure: @@ -1648,6 +1641,15 @@ rtattr_failure: } static int +cbq_dump_stats(struct Qdisc *sch, struct gnet_dump *d) +{ + struct cbq_sched_data *q = qdisc_priv(sch); + + q->link.xstats.avgidle = q->link.avgidle; + return gnet_stats_copy_app(d, &q->link.xstats, sizeof(q->link.xstats)); +} + +static int cbq_dump_class(struct Qdisc *sch, unsigned long arg, struct sk_buff *skb, struct tcmsg *tcm) { @@ -2133,6 +2135,7 @@ static struct Qdisc_ops cbq_qdisc_ops = { .destroy = cbq_destroy, .change = NULL, .dump = cbq_dump, + .dump_stats = cbq_dump_stats, .owner = THIS_MODULE, }; |
