diff options
author | Lai Jiangshan <laijs@cn.fujitsu.com> | 2011-03-15 06:03:53 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2011-07-20 17:10:11 -0400 |
commit | 3b097c46964b07479855b01056c61540b8cadd50 (patch) | |
tree | 67df2b10ea2692000e7e5df18499e6ba51e1952c /kernel/audit_tree.c | |
parent | 6034f7e603cd2dae8ed9a1d8d2ccfeb6b5c48d73 (diff) |
audit_tree,rcu: Convert call_rcu(__put_tree) to kfree_rcu()
The rcu callback __put_tree() just calls a kfree(),
so we use kfree_rcu() instead of the call_rcu(__put_tree).
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Eric Paris <eparis@redhat.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'kernel/audit_tree.c')
-rw-r--r-- | kernel/audit_tree.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/kernel/audit_tree.c b/kernel/audit_tree.c index e99dda04b126..5bf0790497e7 100644 --- a/kernel/audit_tree.c +++ b/kernel/audit_tree.c | |||
@@ -93,16 +93,10 @@ static inline void get_tree(struct audit_tree *tree) | |||
93 | atomic_inc(&tree->count); | 93 | atomic_inc(&tree->count); |
94 | } | 94 | } |
95 | 95 | ||
96 | static void __put_tree(struct rcu_head *rcu) | ||
97 | { | ||
98 | struct audit_tree *tree = container_of(rcu, struct audit_tree, head); | ||
99 | kfree(tree); | ||
100 | } | ||
101 | |||
102 | static inline void put_tree(struct audit_tree *tree) | 96 | static inline void put_tree(struct audit_tree *tree) |
103 | { | 97 | { |
104 | if (atomic_dec_and_test(&tree->count)) | 98 | if (atomic_dec_and_test(&tree->count)) |
105 | call_rcu(&tree->head, __put_tree); | 99 | kfree_rcu(tree, head); |
106 | } | 100 | } |
107 | 101 | ||
108 | /* to avoid bringing the entire thing in audit.h */ | 102 | /* to avoid bringing the entire thing in audit.h */ |