sch_htb: remove from event queue in htb_parent_to_leaf()
authorJarek Poplawski <jarkao2@gmail.com>
Sun, 4 May 2008 03:46:29 +0000 (20:46 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 4 May 2008 03:46:29 +0000 (20:46 -0700)
commit3ba08b00e0d8413d79be9cab8ec085ceb6ae6fd6
tree44b1a0e6ed89793eaf4e99a80b0adf330eb36723
parentf37f2c62a28e848e06399ea2f9be1e098212625c
sch_htb: remove from event queue in htb_parent_to_leaf()

There is lack of removing a class from the event queue while changing
from parent to leaf which can cause corruption of this rb tree. This
patch fixes a bug introduced by my patch: "sch_htb: turn intermediate
classes into leaves" commit: 160d5e10f87b1dc88fd9b84b31b1718e0fd76398.

Many thanks to Jan 'yanek' Bortl for finding a way to reproduce this
rare bug and narrowing the test case, which made possible proper
diagnosing.

This patch is recommended for all kernels starting from 2.6.20.

Reported-and-tested-by: Jan 'yanek' Bortl <yanek@ya.bofh.cz>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_htb.c