summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-07-10 16:27:29 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-07-13 17:45:13 -0400
commit30792947c6f33175e53ae3b8de3f6971c26505b9 (patch)
treed6399fb81c9b4f5736f85b06b183fe12f7b2b7ae /fs/bcachefs
parentLinux 6.16-rc6 (diff)
downloadlinux-30792947c6f33175e53ae3b8de3f6971c26505b9.tar.gz
linux-30792947c6f33175e53ae3b8de3f6971c26505b9.zip
bcachefs: io_read: remove from async obj list in rbio_done()
Previously, only split rbios allocated in io_read.c would be removed from the async obj list. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs')
-rw-r--r--fs/bcachefs/io_read.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/bcachefs/io_read.c b/fs/bcachefs/io_read.c
index cd184b219a65..e0874ad9a6cf 100644
--- a/fs/bcachefs/io_read.c
+++ b/fs/bcachefs/io_read.c
@@ -166,6 +166,7 @@ static noinline void promote_free(struct bch_read_bio *rbio)
BUG_ON(ret);
async_object_list_del(c, promote, op->list_idx);
+ async_object_list_del(c, rbio, rbio->list_idx);
bch2_data_update_exit(&op->write);
@@ -456,6 +457,10 @@ static void bch2_rbio_done(struct bch_read_bio *rbio)
if (rbio->start_time)
bch2_time_stats_update(&rbio->c->times[BCH_TIME_data_read],
rbio->start_time);
+#ifdef CONFIG_BCACHEFS_ASYNC_OBJECT_LISTS
+ if (rbio->list_idx)
+ async_object_list_del(rbio->c, rbio, rbio->list_idx);
+#endif
bio_endio(&rbio->bio);
}