diff options
| author | Chao Shi <coshi036@gmail.com> | 2026-08-06 12:58:37 -0400 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-09-10 09:27:25 +0200 |
| commit | a186ae5716fab861104e746930c34812530ac8bd (patch) | |
| tree | 736cea104c8230f402c91cb71b0f3144c1c6ef39 /tools/lib/python/kdoc/python_version.py | |
| parent | 4ed32fcd59ceb3dd9eeecf608ee612107030b5e3 (diff) | |
| download | linux-next-a186ae5716fab861104e746930c34812530ac8bd.tar.gz linux-next-a186ae5716fab861104e746930c34812530ac8bd.zip | |
ocfs2: check for a metadata write error with buffer_write_io_error()
ocfs2_write_block() and ocfs2_write_super_or_backup() detect a failed write
by looking at BH_Uptodate afterwards. That relies on the write completion
handler clearing BH_Uptodate on error, which this series removes: a buffer
whose write failed still holds the data the filesystem asked to be written,
so declaring it not up to date is wrong and makes callers re-read it.
Test BH_Write_EIO instead. Note that ocfs2_write_block()'s test is the
positive one, so the sense has to be inverted rather than the flag simply
swapped.
The comment in ocfs2_write_block()'s error arm needs updating for the same
reason. It said the clustered uptodate information did not have to be
removed because the buffer was not marked locally uptodate; after this
series it is, so the reason no longer holds. Not advertising the block to
the cluster is still the right thing to do - the data is in memory but not
on disk - so only the justification changes, not the behaviour.
No behaviour change today - a failed write sets BH_Write_EIO and clears
BH_Uptodate together. It stops being a no-op at the end of the series,
where the new test is the one that still works.
Acked-by: Weidong Zhu <weizhu@fiu.edu>
Signed-off-by: Chao Shi <coshi036@gmail.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/05cd3c34f2dc69b542db7baaef058cd75005d4cb.1785951556.git.coshi036@gmail.com
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
