pkt_sched: Manage qdisc list inside of root qdisc.
authorDavid S. Miller <davem@davemloft.net>
Sat, 19 Jul 2008 05:50:15 +0000 (22:50 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 19 Jul 2008 05:50:15 +0000 (22:50 -0700)
commit3072367300aa8c779e3a14ee8e89de079e90f3ad
tree7f74c5b8fdb300532fbbc83ba00d6d1d17af020e
parent72b25a913ed9b1ab49c7022adaf3f271a65ea219
pkt_sched: Manage qdisc list inside of root qdisc.

Idea is from Patrick McHardy.

Instead of managing the list of qdiscs on the device level, manage it
in the root qdisc of a netdev_queue.  This solves all kinds of
visibility issues during qdisc destruction.

The way to iterate over all qdiscs of a netdev_queue is to visit
the netdev_queue->qdisc, and then traverse it's list.

The only special case is to ignore builting qdiscs at the root when
dumping or doing a qdisc_lookup().  That was not needed previously
because builtin qdiscs were not added to the device's qdisc_list.

Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h
net/core/dev.c
net/sched/sch_api.c
net/sched/sch_generic.c