Hi Greg and Sasha,
This two patches are backports for v5.18 branch.
These two patches are reducing the chance of destructive RMW cycle, where btrfs can use corrupted data to generate new P/Q, thus making some repairable data unrepairable.
Those patches are more important than what I initially thought, thus unfortunately they are not CCed to stable by themselves.
Furthermore due to recent refactors/renames, there are quite some member change related to those patches, thus have to be manually backported. (The v5.18 backport is more like the v5.15 backport, with small tweaks due to member naming change).
One of the fastest way to verify the behavior is the existing btrfs/125 test case from fstests. (not in auto group AFAIK).
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(-)