diff options
author | Wei Yongjun <weiyj.lk@gmail.com> | 2016-07-29 20:38:26 -0400 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2016-08-08 15:41:42 -0400 |
commit | 864364a29c26ed83b3eeca5fa278468dc3ae9ed4 (patch) | |
tree | 110b270984da9ac18f315281db430aa1cfbb1585 | |
parent | f52ec33cbd848632559c87c9305a70fb6eb97f18 (diff) |
libceph: using kfree_rcu() to simplify the code
The callback function of call_rcu() just calls a kfree(), so we
can use kfree_rcu() instead of call_rcu() + callback function.
Signed-off-by: Wei Yongjun <weiyj.lk@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
-rw-r--r-- | net/ceph/string_table.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/net/ceph/string_table.c b/net/ceph/string_table.c index ca53c8319209..22fb96efcf34 100644 --- a/net/ceph/string_table.c +++ b/net/ceph/string_table.c | |||
@@ -84,12 +84,6 @@ retry: | |||
84 | } | 84 | } |
85 | EXPORT_SYMBOL(ceph_find_or_create_string); | 85 | EXPORT_SYMBOL(ceph_find_or_create_string); |
86 | 86 | ||
87 | static void ceph_free_string(struct rcu_head *head) | ||
88 | { | ||
89 | struct ceph_string *cs = container_of(head, struct ceph_string, rcu); | ||
90 | kfree(cs); | ||
91 | } | ||
92 | |||
93 | void ceph_release_string(struct kref *ref) | 87 | void ceph_release_string(struct kref *ref) |
94 | { | 88 | { |
95 | struct ceph_string *cs = container_of(ref, struct ceph_string, kref); | 89 | struct ceph_string *cs = container_of(ref, struct ceph_string, kref); |
@@ -101,7 +95,7 @@ void ceph_release_string(struct kref *ref) | |||
101 | } | 95 | } |
102 | spin_unlock(&string_tree_lock); | 96 | spin_unlock(&string_tree_lock); |
103 | 97 | ||
104 | call_rcu(&cs->rcu, ceph_free_string); | 98 | kfree_rcu(cs, rcu); |
105 | } | 99 | } |
106 | EXPORT_SYMBOL(ceph_release_string); | 100 | EXPORT_SYMBOL(ceph_release_string); |
107 | 101 | ||