This is the backport for v5.10.x stable branch. The full explananation can be found here: https://lore.kernel.org/linux-btrfs/cover.1660891713.git.wqu@xxxxxxxx/ Difference between v5.10.x and v5.15.x backports: - Naming change in btrfs_io_contrl In v5.15, we don't have the btrfs_io_contrl rename, thus only btrfs_bio. - Missing btrfs_fs_info::sectorsize_bits Since RAID56 doesn't support anything but PAGE_SIZE == sectorsize (until v5.19+), here we just use PAGE_SHIFT. Another thing related to v5.10.x testing is, there are some lockdep assert triggered related to uuid_mutex. I'm not 100% sure, but at least RAID56 code is not touching that mutex, thus I guess it's some other problems. 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