diff options
| author | Boris Burkov <boris@bur.io> | 2026-06-11 14:40:17 -0700 |
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2026-06-30 01:59:20 +0200 |
| commit | 3dcd50730814e5220072d2b26d0587af6bfb6dbe (patch) | |
| tree | 4c5ddab28bf99f787ccca6a887ce2f6984db336b /Documentation/gpu/intel-display/git@git.tavy.me:linux.git | |
| parent | ce6050bafb4e33377dc17fcc357736bfc351180c (diff) | |
btrfs: fallback to transaction csum tree on a commit root csum miss
We have been running with commit root csums enabled for some time and
have noticed a slight uptick in zero csum errors. Investigating those
revealed that they were same transaction reads of extents that were just
relocated, but the extent map generation was long ago.
It turns out that relocation intentionally does not update the extent
generation (replace_file_extents()), but must write a new csum since the
data has moved, so we must account for this with commit root csum reading.
Luckily this is a short lived condition: after the relocation transaction
the commit root will once again have the csum. So we can add a generic
fallback to the lookup to try again with the transaction csum root.
Fixes: f07b855c56b1 ("btrfs: try to search for data csums in commit root")
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Boris Burkov <boris@bur.io>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'Documentation/gpu/intel-display/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions
