[PATCH v4 7/7] btrfs: stripe-tree: also look at commit root on relocation

From: Johannes Thumshirn
Date: Fri Jul 05 2024 - 11:16:08 EST


From: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>

When doing reads on a raid stripe tree enabled system while relocation
is ongoinig, also look at the commit root. The data we're interested
in could've just been relocated to another place in the current
transaction.

Signed-off-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>
---
fs/btrfs/bio.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/btrfs/bio.c b/fs/btrfs/bio.c
index 5f36c75a2457..948509ac343e 100644
--- a/fs/btrfs/bio.c
+++ b/fs/btrfs/bio.c
@@ -679,7 +679,8 @@ static bool btrfs_submit_chunk(struct btrfs_bio *bbio, int mirror_num)
blk_status_t ret;
int error;

- smap.commit_root = !bbio->inode;
+ smap.commit_root = !bbio->inode ||
+ btrfs_is_data_reloc_root(inode->root);

btrfs_bio_counter_inc_blocked(fs_info);
error = btrfs_map_block(fs_info, btrfs_op(bio), logical, &map_length,

--
2.43.0