This is the backport for v5.15.x stable branch. The full explananation can be found here: https://lore.kernel.org/linux-btrfs/Yv85PTBsDhrQITZp@xxxxxxxxx/T/#t Difference between v5.15.x and v5.18.x backports: - btrfs_io_contrl::fs_info and btrfs_raid_bio::fs_info refactor In v5.15 and older kernel, btrfs_raid_bio and btrfs_io_control both have fs_info member, and the new rbio_add_bio() function utilizes btrfs_io_ctrl::fs_info. Unfortunately that rbio->bioc->fs_info is not always initialized in v5.15 and older kernels. Thus has to use rbio->fs_info instead. If not properly handled, can lead to btrfs/158 crash. Qu Wenruo (2): btrfs: only write the sectors in the vertical stripe which has data stripes btrfs: raid56: don't trust any cached sector in __raid56_parity_recover() fs/btrfs/raid56.c | 74 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 57 insertions(+), 17 deletions(-) -- 2.37.1