ext4: use ext4_buffer_uptodate() in __ext4_get_inode_loc()
authorzhangyi (F) <yi.zhang@huawei.com>
Thu, 24 Sep 2020 07:33:34 +0000 (15:33 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 18 Oct 2020 14:37:14 +0000 (10:37 -0400)
We have already introduced ext4_buffer_uptodate() to re-set the uptodate
bit on buffer which has been failed to write out to disk. Just remove
the redundant codes and switch to use ext4_buffer_uptodate() in
__ext4_get_inode_loc().

Signed-off-by: zhangyi (F) <yi.zhang@huawei.com>
Link: https://lore.kernel.org/r/20200924073337.861472-5-yi.zhang@huawei.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/inode.c

index 36d3816..39c02dc 100644 (file)
@@ -4310,16 +4310,7 @@ 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)) {
+               if (ext4_buffer_uptodate(bh)) {
                        /* someone brought it uptodate while we waited */
                        unlock_buffer(bh);
                        goto has_buffer;