From: yangerkun
maillist inclusion
category: bugfix
issue: #I4NRS5
CVE: NA
Signed-off-by: Yu Changchun
---------------------------
Buffer with verified means that it has been checked before. No need
verify and call set_buffer_verified again.
Signed-off-by: yangerkun
Reviewed-by: Jan Kara
Reviewed-by: Zhang Yi
Signed-off-by: Chen Jun
Signed-off-by: Zheng Zengkai
Signed-off-by: Yu Changchun
---
fs/ext4/extents.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 618675a41efb..a77e25ca6867 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -544,13 +544,16 @@ __read_extent_tree_block(const char *function, unsigned int line,
if (err < 0)
goto errout;
}
- if (buffer_verified(bh) && !(flags & EXT4_EX_FORCE_CACHE))
- return bh;
- err = __ext4_ext_check(function, line, inode, ext_block_hdr(bh),
- depth, pblk, le32_to_cpu(idx->ei_block));
- if (err)
- goto errout;
- set_buffer_verified(bh);
+ if (buffer_verified(bh)) {
+ if (!(flags & EXT4_EX_FORCE_CACHE))
+ return bh;
+ } else {
+ err = __ext4_ext_check(function, line, inode, ext_block_hdr(bh),
+ depth, pblk, le32_to_cpu(idx->ei_block));
+ if (err)
+ goto errout;
+ set_buffer_verified(bh);
+ }
/*
* If this is a leaf block, cache all of its entries
*/
--
2.25.1