cgroup: introduce coalesce css_get() and css_put()
[pandora-kernel.git] / kernel / cgroup.c
index be45d2f..cace83d 100644 (file)
@@ -3746,12 +3746,13 @@ static void check_for_release(struct cgroup *cgrp)
        }
 }
 
-void __css_put(struct cgroup_subsys_state *css)
+/* Caller must verify that the css is not for root cgroup */
+void __css_put(struct cgroup_subsys_state *css, int count)
 {
        struct cgroup *cgrp = css->cgroup;
        int val;
        rcu_read_lock();
-       val = atomic_dec_return(&css->refcnt);
+       val = atomic_sub_return(count, &css->refcnt);
        if (val == 1) {
                if (notify_on_release(cgrp)) {
                        set_bit(CGRP_RELEASABLE, &cgrp->flags);