From 0d85ae1f80b11d491f313f1a7982bdec42db3604 Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Mon, 20 Mar 2006 19:01:21 -0800 Subject: [PATCH] --- yaml --- r: 22186 b: refs/heads/master c: 053cfed75d9e01bda274c5b0126f5937181dcb62 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/sched/sch_tbf.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 486b7faf9159..4c2a407ae7ae 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cdc7f8e362bcadbc312c97fb69d8d59676eec422 +refs/heads/master: 053cfed75d9e01bda274c5b0126f5937181dcb62 diff --git a/trunk/net/sched/sch_tbf.c b/trunk/net/sched/sch_tbf.c index e9e473457361..d8e03c74ca76 100644 --- a/trunk/net/sched/sch_tbf.c +++ b/trunk/net/sched/sch_tbf.c @@ -341,13 +341,14 @@ static int tbf_change(struct Qdisc* sch, struct rtattr *opt) if (max_size < 0) goto done; - if (q->qdisc == &noop_qdisc) { + if (qopt->limit > 0) { if ((child = tbf_create_dflt_qdisc(sch->dev, qopt->limit)) == NULL) goto done; } sch_tree_lock(sch); - if (child) q->qdisc = child; + if (child) + qdisc_destroy(xchg(&q->qdisc, child)); q->limit = qopt->limit; q->mtu = qopt->mtu; q->max_size = max_size;