diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-09-24 05:32:58 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-09-28 04:46:35 +0300 |
commit | 3672bda8f5edd8ed23c745965500ceb53286d48d (patch) | |
tree | f97788d47e10a05a0ca5f15ec37629eef6f6d1b3 /tools/perf/scripts/python/syscall-counts.py | |
parent | 22a507d68eb8dc9d05b7e91e9a7c9b2566d48c81 (diff) | |
download | linux-3672bda8f5edd8ed23c745965500ceb53286d48d.tar.xz |
bcachefs: fix transaction restart handling in check_extents(), check_dirents()
Dealing with outside state within a btree transaction is always tricky.
check_extents() and check_dirents() have to accumulate counters for
i_sectors and i_nlink (for subdirectories). There were two bugs:
- transaction commit may return a restart; therefore we have to commit
before accumulating to those counters
- get_inode_all_snapshots() may return a transaction restart, before
updating w->last_pos; then, on the restart,
check_i_sectors()/check_subdir_count() would see inodes that were not
for w->last_pos
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'tools/perf/scripts/python/syscall-counts.py')
0 files changed, 0 insertions, 0 deletions