]> git.hungrycats.org Git - linux/commitdiff
[PKT_SCHED]: Fix q_idx calculation in tc_dump_qdisc.
authorPatrick McHardy <kaber@trash.net>
Wed, 4 Aug 2004 06:31:56 +0000 (23:31 -0700)
committerDavid S. Miller <davem@nuts.davemloft.net>
Wed, 4 Aug 2004 06:31:56 +0000 (23:31 -0700)
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@redhat.com>
net/sched/sch_api.c

index a69089d442d43abaa24812d45a27a7578edb36b3..1f9bf9d0834cf0404bad6396453ba350efad84cb 100644 (file)
@@ -817,13 +817,16 @@ static int tc_dump_qdisc(struct sk_buff *skb, struct netlink_callback *cb)
                read_lock_bh(&qdisc_tree_lock);
                q_idx = 0;
                list_for_each_entry(q, &dev->qdisc_list, list) {
-                       if (q_idx++ < s_q_idx)
+                       if (q_idx < s_q_idx) {
+                               q_idx++;
                                continue;
+                       }
                        if (tc_fill_qdisc(skb, q, 0, NETLINK_CB(cb->skb).pid,
                                          cb->nlh->nlmsg_seq, NLM_F_MULTI, RTM_NEWQDISC) <= 0) {
                                read_unlock_bh(&qdisc_tree_lock);
                                goto done;
                        }
+                       q_idx++;
                }
                read_unlock_bh(&qdisc_tree_lock);
        }
@@ -832,7 +835,7 @@ done:
        read_unlock(&dev_base_lock);
 
        cb->args[0] = idx;
-       cb->args[1] = q_idx - 1;
+       cb->args[1] = q_idx;
 
        return skb->len;
 }