net-sched: sch_htb: move hash and sibling list removal to htb_delete
authorPatrick McHardy <kaber@trash.net>
Sun, 6 Jul 2008 06:22:19 +0000 (23:22 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 6 Jul 2008 06:22:19 +0000 (23:22 -0700)
commitfbd8f1379aeeb3e44a59302a6b2850636130bb2a
treeaa3c73e765d983f91f6509753c35a019bae19fd8
parentd77fea2eb9206833c7aa1b013044ddeb5225b92c
net-sched: sch_htb: move hash and sibling list removal to htb_delete

Hash list removal currently happens twice (once in htb_delete, once
in htb_destroy_class), which makes it harder to use the dynamically
sized class hash without adding special cases for HTB. The reason is
that qdisc destruction destroys classes in hierarchical order, which
is not necessary if filters are destroyed in a separate iteration
during qdisc destruction.

Adjust qdisc destruction to follow the same scheme as other hierarchical
qdiscs by first performing a filter destruction pass, then destroying
all classes in hash order.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_htb.c