diff options
author | Josef Bacik <josef@toxicpanda.com> | 2022-02-18 18:03:23 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2022-03-14 15:13:51 +0300 |
commit | 1784b7d502a94b561eae58249adde5f72c26eb3c (patch) | |
tree | d9883e341cf061dbaad174891b50fcccb31b3cbf /tools/perf/scripts/python/export-to-postgresql.py | |
parent | 03ddb19d2ea745228879b9334f3b550c88acb10a (diff) | |
download | linux-1784b7d502a94b561eae58249adde5f72c26eb3c.tar.xz |
btrfs: handle csum lookup errors properly on reads
Currently any error we get while trying to lookup csums during reads
shows up as a missing csum, and then on the read completion side we
print an error saying there was a csum mismatch and we increase the
device corruption count.
However we could have gotten an EIO from the lookup. We could also be
inside of a memory constrained container and gotten a ENOMEM while
trying to do the read. In either case we don't want to make this look
like a file system corruption problem, we want to make it look like the
actual error it is. Capture any negative value, convert it to the
appropriate blk_status_t, free the csum array if we have one and bail.
Note: a possible improvement would be to make the relocation code look
up the owning inode and see if it's marked as NODATASUM and set
EXTENT_NODATASUM there, that way if there's corruption and there isn't a
checksum when we want it we can fail here rather than later.
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions