bcachefs: fix an rcu usage bug
authorKent Overstreet <kent.overstreet@gmail.com>
Tue, 18 Dec 2018 19:43:00 +0000 (14:43 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:14 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/io.c

index 74c3a848e1535bbc8449aa40208c95f2871278de..e1c7d572fbffe2a66bf7d0b81df8eee505bfd3d7 100644 (file)
@@ -967,6 +967,7 @@ void bch2_write(struct closure *cl)
 
 struct promote_op {
        struct closure          cl;
+       struct rcu_head         rcu;
        u64                     start_time;
 
        struct rhash_head       hash;
@@ -1020,7 +1021,7 @@ static void promote_free(struct bch_fs *c, struct promote_op *op)
                                     bch_promote_params);
        BUG_ON(ret);
        percpu_ref_put(&c->writes);
-       kfree(op);
+       kfree_rcu(op, rcu);
 }
 
 static void promote_done(struct closure *cl)