aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLai Jiangshan <laijs@cn.fujitsu.com>2011-03-15 05:55:16 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2011-05-08 01:50:46 -0400
commitf2da1c40dc003939f616f27a103b2592f1424b07 (patch)
treea34d091b5652a7605269cff58b9e259dc94198a7
parent30088ad815802f850f26114920ccf9effd4bc520 (diff)
cgroup,rcu: convert call_rcu(free_cgroup_rcu) to kfree_rcu()
The rcu callback free_cgroup_rcu() just calls a kfree(), so we use kfree_rcu() instead of the call_rcu(free_cgroup_rcu). Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> Acked-by: Paul Menage <menage@google.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
-rw-r--r--kernel/cgroup.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index d5160a83fb35..20451ce7195f 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -806,13 +806,6 @@ static int cgroup_call_pre_destroy(struct cgroup *cgrp)
806 return ret; 806 return ret;
807} 807}
808 808
809static void free_cgroup_rcu(struct rcu_head *obj)
810{
811 struct cgroup *cgrp = container_of(obj, struct cgroup, rcu_head);
812
813 kfree(cgrp);
814}
815
816static void cgroup_diput(struct dentry *dentry, struct inode *inode) 809static void cgroup_diput(struct dentry *dentry, struct inode *inode)
817{ 810{
818 /* is dentry a directory ? if so, kfree() associated cgroup */ 811 /* is dentry a directory ? if so, kfree() associated cgroup */
@@ -850,7 +843,7 @@ static void cgroup_diput(struct dentry *dentry, struct inode *inode)
850 */ 843 */
851 BUG_ON(!list_empty(&cgrp->pidlists)); 844 BUG_ON(!list_empty(&cgrp->pidlists));
852 845
853 call_rcu(&cgrp->rcu_head, free_cgroup_rcu); 846 kfree_rcu(cgrp, rcu_head);
854 } 847 }
855 iput(inode); 848 iput(inode);
856} 849}