aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorFilipe Manana <[email protected]>2023-01-10 14:56:37 +0000
committerDavid Sterba <[email protected]>2023-01-12 14:43:30 +0000
commit16199ad9eb6db60a6b10794a09fc1ac6d09312ff (patch)
tree4495c26f3649e7964bd07c6620a81c2b8eca17dc /tools/perf/scripts/python
parentbtrfs: add missing setup of log for full commit at add_conflicting_inode() (diff)
downloadkernel-16199ad9eb6db60a6b10794a09fc1ac6d09312ff.tar.gz
kernel-16199ad9eb6db60a6b10794a09fc1ac6d09312ff.zip
btrfs: do not abort transaction on failure to write log tree when syncing log
When syncing the log, if we fail to write log tree extent buffers, we mark the log for a full commit and abort the transaction. However we don't need to abort the transaction, all we really need to do is to make sure no one can commit a superblock pointing to new log tree roots. Just because we got a failure writing extent buffers for a log tree, it does not mean we will also fail to do a transaction commit. One particular case is if due to a bug somewhere, when writing log tree extent buffers, the tree checker detects some corruption and the writeout fails because of that. Aborting the transaction can be very disruptive for a user, specially if the issue happened on a root filesystem. One example is the scenario in the Link tag below, where an isolated corruption on log tree leaves was causing transaction aborts when syncing the log. Link: https://lore.kernel.org/linux-btrfs/[email protected]/ CC: [email protected] # 5.15+ Reviewed-by: Josef Bacik <[email protected]> Signed-off-by: Filipe Manana <[email protected]> Signed-off-by: David Sterba <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions