summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-12-18 14:43:00 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:08:14 -0400
commit69d46f903120d4aab0e0ad239191245d839224cc (patch)
tree200de63296c312d76383e1cdb265352da7369650
parenta36d3685bbc3a5193f0c284233386d56136363c7 (diff)
downloadlinux-69d46f903120d4aab0e0ad239191245d839224cc.tar.gz
linux-69d46f903120d4aab0e0ad239191245d839224cc.tar.bz2
linux-69d46f903120d4aab0e0ad239191245d839224cc.zip
bcachefs: fix an rcu usage bug
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/io.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/bcachefs/io.c b/fs/bcachefs/io.c
index 74c3a848e153..e1c7d572fbff 100644
--- a/fs/bcachefs/io.c
+++ b/fs/bcachefs/io.c
@@ -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)