[NET_SCHED]: Fix endless loops (part 3): HFSC
authorPatrick McHardy <kaber@trash.net>
Thu, 30 Nov 2006 01:36:43 +0000 (17:36 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 3 Dec 2006 05:31:44 +0000 (21:31 -0800)
commitf973b913e18ab5a4795738ddf8a8666ac306ee12
tree6162ce2896e1a7139f019c09dc37f09d213a211b
parent5e50da01d0ce7ef0ba3ed6cfabd62f327da0aca6
[NET_SCHED]: Fix endless loops (part 3): HFSC

Convert HFSC to use qdisc_tree_decrease_len() and add a callback
for deactivating a class when its child queue becomes empty.

All queue purging goes through hfsc_purge_queue(), which is used in
three cases: grafting, class creation (when a leaf class is turned
into an intermediate class by attaching a new class) and class
deletion. In all cases qdisc_tree_decrease_len() is needed.

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