diff options
| author | Ryusuke Konishi <konishi.ryusuke@gmail.com> | 2026-09-29 15:38:14 +0900 |
|---|---|---|
| committer | Viacheslav Dubeyko <slava@dubeyko.com> | 2026-09-29 10:49:58 -0700 |
| commit | 6faad04a002603d800134398fcd042b403b32d35 (patch) | |
| tree | 8f5426fdcdc3e1e52690ae2ef2f340c5e256fce1 /tools/perf/scripts/python/bin/stackcollapse-report | |
| parent | ff1227f70eead8704ecfec69259fb4c041f92cda (diff) | |
| download | linux-6faad04a002603d800134398fcd042b403b32d35.tar.gz linux-6faad04a002603d800134398fcd042b403b32d35.zip | |
nilfs2: clear dirty flag on bdev buffers on log write failure
Since the commit referenced in the Fixes tag stopped directly calling
inode_attach_wb(), a dirty flag is set on buffers (with
mark_buffer_dirty()) allocated to the backing device for segment
summaries and the super root block during log writes.
While this dirty flag is cleared upon a successful log write, it remains
uncleared if the log write fails.
Consequently, when a log write fails, these backing device buffers are
left in an inconsistent state where their uptodate flag and the dirty
flag of the containing page/folio are cleared, but the buffer's dirty
flag remains as stale garbage.
Particularly when the block size is smaller than the page size, if other
buffers on the same page/folio become dirty, this buffer unexpectedly
becomes a target for writeback again. As a result, if the block is
later reused for other data or metadata, that contents risks being
corrupted.
Fix this issue by calling clear_buffer_dirty() for the backing device
buffers when aborting log writes in nilfs_abort_logs().
Fixes: 68142cb628f7 ("nilfs2: do not call inode_attach_wb() directly")
Cc: stable@vger.kernel.org
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: Viacheslav Dubeyko <slava@dubeyko.com>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-report')
0 files changed, 0 insertions, 0 deletions
