The callback function of call_rcu() just calls kvfree(). So, use
kvfree_rcu() instead of call_rcu() + callback function.

Signed-off-by: Li RongQing <[email protected]>
---
 fs/bcachefs/buckets.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c
index 345b117a4..6d236fa 100644
--- a/fs/bcachefs/buckets.c
+++ b/fs/bcachefs/buckets.c
@@ -1270,14 +1270,6 @@ int bch2_buckets_nouse_alloc(struct bch_fs *c)
        return 0;
 }
 
-static void bucket_gens_free_rcu(struct rcu_head *rcu)
-{
-       struct bucket_gens *buckets =
-               container_of(rcu, struct bucket_gens, rcu);
-
-       kvfree(buckets);
-}
-
 int bch2_dev_buckets_resize(struct bch_fs *c, struct bch_dev *ca, u64 nbuckets)
 {
        struct bucket_gens *bucket_gens = NULL, *old_bucket_gens = NULL;
@@ -1322,7 +1314,7 @@ int bch2_dev_buckets_resize(struct bch_fs *c, struct 
bch_dev *ca, u64 nbuckets)
        ret = 0;
 err:
        if (bucket_gens)
-               call_rcu(&bucket_gens->rcu, bucket_gens_free_rcu);
+               kvfree_rcu(bucket_gens, rcu);
 
        return ret;
 }
-- 
2.9.4


Reply via email to