diff options
author | Alex Shi <alex.shi@linaro.org> | 2016-05-20 12:16:37 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2016-05-20 12:16:37 +0800 |
commit | 510d0a3f869611dcd001a2b7627fa5dded4579af (patch) | |
tree | ba06ce27af2f3aa194a268e3f26f0665c21357a9 /net/sched/sch_multiq.c | |
parent | e37ddf27108a992e191b27df9bd532cb9157dc89 (diff) | |
parent | 544ec5b08d007f184ab97abdbed87e613c8c0b83 (diff) |
Merge tag 'v4.4.11' into linux-linaro-lsk-v4.4lsk-v4.4-16.05
This is the 4.4.11 stable release
Diffstat (limited to 'net/sched/sch_multiq.c')
-rw-r--r-- | net/sched/sch_multiq.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/net/sched/sch_multiq.c b/net/sched/sch_multiq.c index 4e904ca0af9d..bcdd54bb101c 100644 --- a/net/sched/sch_multiq.c +++ b/net/sched/sch_multiq.c @@ -218,7 +218,8 @@ static int multiq_tune(struct Qdisc *sch, struct nlattr *opt) if (q->queues[i] != &noop_qdisc) { struct Qdisc *child = q->queues[i]; q->queues[i] = &noop_qdisc; - qdisc_tree_decrease_qlen(child, child->q.qlen); + qdisc_tree_reduce_backlog(child, child->q.qlen, + child->qstats.backlog); qdisc_destroy(child); } } @@ -238,8 +239,9 @@ static int multiq_tune(struct Qdisc *sch, struct nlattr *opt) q->queues[i] = child; if (old != &noop_qdisc) { - qdisc_tree_decrease_qlen(old, - old->q.qlen); + qdisc_tree_reduce_backlog(old, + old->q.qlen, + old->qstats.backlog); qdisc_destroy(old); } sch_tree_unlock(sch); @@ -303,13 +305,7 @@ static int multiq_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, if (new == NULL) new = &noop_qdisc; - sch_tree_lock(sch); - *old = q->queues[band]; - q->queues[band] = new; - qdisc_tree_decrease_qlen(*old, (*old)->q.qlen); - qdisc_reset(*old); - sch_tree_unlock(sch); - + *old = qdisc_replace(sch, new, &q->queues[band]); return 0; } |