diff options
| author | Chao Shi <coshi036@gmail.com> | 2026-08-06 12:58:44 -0400 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2026-09-10 09:27:27 +0200 |
| commit | 336e794c59173407d22cfc1f254c517c264ef9ed (patch) | |
| tree | 6668f2f26794f2daa6d5a7bd9b11e88ef68d36e5 /tools/lib/python/kdoc/python_version.py | |
| parent | 9f08e58149dca8453bf99e0af35cbb227ded17b1 (diff) | |
| download | linux-next-336e794c59173407d22cfc1f254c517c264ef9ed.tar.gz linux-next-336e794c59173407d22cfc1f254c517c264ef9ed.zip | |
buffer: clear BH_Write_EIO when a write succeeds, not when one starts
BH_Write_EIO is cleared in __bh_submit(), when a buffer that has been
written before is submitted for write again. That is early: it says the
error is gone at the moment we start trying to fix it, rather than when we
have.
It also loses errors. A task whose write fails sets the flag and then goes
to look at it; if another task redirties the buffer and resubmits it in
between, the submission clears the flag and the first task sees no error at
all. Neither of them is doing anything wrong.
Clear it on successful write completion instead, in the end io handlers -
the same three the rest of this series has been converting, plus gfs2's,
which already marked errors this way. Then the flag means what it says:
the last write of this buffer that finished, failed. A resubmission no
longer hides an error that has not been fixed yet, and one that has been
fixed clears the flag when the data reaches the disk.
__bh_submit() keeps setting BH_Req, which is what the rest of the tree
reads it for.
Suggested-by: Jan Kara <jack@suse.cz>
Acked-by: Weidong Zhu <weizhu@fiu.edu>
Signed-off-by: Chao Shi <coshi036@gmail.com>
Link: https://patch.msgid.link/1c976fd191aa6e99dbe65d6a1ec63f8706cc0dfa.1785951556.git.coshi036@gmail.com
Reviewed-by: Jan Kara <jack@suse.cz>
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
