VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / net / sched / cls_rsvp.h
index 85e028d..f70fad1 100644 (file)
@@ -278,7 +278,7 @@ static void rsvp_destroy(struct tcf_proto *tp)
                                        if ((cl = __cls_set_class(&f->res.class, 0)) != 0)
                                                tp->q->ops->cl_ops->unbind_tcf(tp->q, cl);
 #ifdef CONFIG_NET_CLS_POLICE
-                                       tcf_police_release(f->police);
+                                       tcf_police_release(f->police,TCA_ACT_UNBIND);
 #endif
                                        kfree(f);
                                }
@@ -310,7 +310,7 @@ static int rsvp_delete(struct tcf_proto *tp, unsigned long arg)
                                tp->q->ops->cl_ops->unbind_tcf(tp->q, cl);
 
 #ifdef CONFIG_NET_CLS_POLICE
-                       tcf_police_release(f->police);
+                       tcf_police_release(f->police,TCA_ACT_UNBIND);
 #endif
 
                        kfree(f);
@@ -452,7 +452,7 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base,
                        police = xchg(&f->police, police);
                        tcf_tree_unlock(tp);
 
-                       tcf_police_release(police);
+                       tcf_police_release(police,TCA_ACT_UNBIND);
                }
 #endif
                return 0;
@@ -656,7 +656,8 @@ static int rsvp_dump(struct tcf_proto *tp, unsigned long fh,
        rta->rta_len = skb->tail - b;
 #ifdef CONFIG_NET_CLS_POLICE
        if (f->police) {
-               if (qdisc_copy_stats(skb, &f->police->stats))
+               if (qdisc_copy_stats(skb, &f->police->stats,
+                                    f->police->stats_lock))
                        goto rtattr_failure;
        }
 #endif