2020-06-17 12:00:24

by Zhang Yi

[permalink] [raw]
Subject: [PATCH v2 5/5] ext4: remove write io error check before read inode block

After we add ext4_end_buffer_async_write() callback into block layer to
detect metadata buffer's async write error in the background, we can
remove the partial fix for filesystem inconsistency problem caused by
reading old data from disk in commit <9c83a923c67d> "ext4: don't read
inode block if the buffer has a write error".

Signed-off-by: zhangyi (F) <[email protected]>
---
fs/ext4/inode.c | 9 ---------
1 file changed, 9 deletions(-)

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 8ccb6996c384..b2fc1aef3886 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4281,15 +4281,6 @@ static int __ext4_get_inode_loc(struct inode *inode,
if (!buffer_uptodate(bh)) {
lock_buffer(bh);

- /*
- * If the buffer has the write error flag, we have failed
- * to write out another inode in the same block. In this
- * case, we don't have to read the block because we may
- * read the old inode data successfully.
- */
- if (buffer_write_io_error(bh) && !buffer_uptodate(bh))
- set_buffer_uptodate(bh);
-
if (buffer_uptodate(bh)) {
/* someone brought it uptodate while we waited */
unlock_buffer(bh);
--
2.25.4