aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/sch_htb.c
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2008-07-06 02:23:27 -0400
committerDavid S. Miller <davem@davemloft.net>2008-07-06 02:23:27 -0400
commitaee18a8cf28808b7302ef698d77fa73883e60f1b (patch)
tree588722b785cea394c13997dfa1502ed041588d8c /net/sched/sch_htb.c
parent4207759939c208f24d7e09596753e67b6bc188f9 (diff)
net-sched: sch_htb: remove write-only qdisc filter_cnt
The filter_cnt is supposed to count filter references to a class. Since the qdisc can't be the target of a filter, it doesn't need a filter_cnt. In fact the counter is never decreased since cls_api considers a return value of zero a failure and doesn't unbind again. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_htb.c')
-rw-r--r--net/sched/sch_htb.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index 128a5ab2e376..ee8b4ffe110c 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -159,7 +159,6 @@ struct htb_sched {
159 159
160 /* filters for qdisc itself */ 160 /* filters for qdisc itself */
161 struct tcf_proto *filter_list; 161 struct tcf_proto *filter_list;
162 int filter_cnt;
163 162
164 int rate2quantum; /* quant = rate / rate2quantum */ 163 int rate2quantum; /* quant = rate / rate2quantum */
165 psched_time_t now; /* cached dequeue time */ 164 psched_time_t now; /* cached dequeue time */
@@ -1484,7 +1483,6 @@ static struct tcf_proto **htb_find_tcf(struct Qdisc *sch, unsigned long arg)
1484static unsigned long htb_bind_filter(struct Qdisc *sch, unsigned long parent, 1483static unsigned long htb_bind_filter(struct Qdisc *sch, unsigned long parent,
1485 u32 classid) 1484 u32 classid)
1486{ 1485{
1487 struct htb_sched *q = qdisc_priv(sch);
1488 struct htb_class *cl = htb_find(classid, sch); 1486 struct htb_class *cl = htb_find(classid, sch);
1489 1487
1490 /*if (cl && !cl->level) return 0; 1488 /*if (cl && !cl->level) return 0;
@@ -1498,20 +1496,15 @@ static unsigned long htb_bind_filter(struct Qdisc *sch, unsigned long parent,
1498 */ 1496 */
1499 if (cl) 1497 if (cl)
1500 cl->filter_cnt++; 1498 cl->filter_cnt++;
1501 else
1502 q->filter_cnt++;
1503 return (unsigned long)cl; 1499 return (unsigned long)cl;
1504} 1500}
1505 1501
1506static void htb_unbind_filter(struct Qdisc *sch, unsigned long arg) 1502static void htb_unbind_filter(struct Qdisc *sch, unsigned long arg)
1507{ 1503{
1508 struct htb_sched *q = qdisc_priv(sch);
1509 struct htb_class *cl = (struct htb_class *)arg; 1504 struct htb_class *cl = (struct htb_class *)arg;
1510 1505
1511 if (cl) 1506 if (cl)
1512 cl->filter_cnt--; 1507 cl->filter_cnt--;
1513 else
1514 q->filter_cnt--;
1515} 1508}
1516 1509
1517static void htb_walk(struct Qdisc *sch, struct qdisc_walker *arg) 1510static void htb_walk(struct Qdisc *sch, struct qdisc_walker *arg)