Skip to content
Snippets Groups Projects
Commit 36f2d824 authored by zhangyi (F)'s avatar zhangyi (F) Committed by 谢秀奇
Browse files

ext4: fix suspicious RCU usage warning in ext4_release_system_zone


hulk inclusion
category: bugfix
bugzilla: 18685
CVE: NA

-----------------------------

The rcu_dereference() should be used under rcu_read_lock(), or else it
will complain about it may be a suspicious RCU usage.

 WARNING: suspicious RCU usage
 [...]
 -----------------------------
 fs/ext4/block_validity.c:331 suspicious rcu_dereference_check() usage!
 [...]

Because ext4_release_system_zone() always under protection of
sb->s_umount, so the proper fix is switch to use
rcu_dereference_protected() instead.

Fixes: fb9fd3ade129be ("ext4: fix potential use after free in system zone via remount with noblock_validity")
Reviewed-by: default avatarZhangXiaoxu <zhangxiaoxu5@huawei.com>
Signed-off-by: default avatarzhangyi (F) <yi.zhang@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
Reviewed-by: default avatarYi Zhang <yi.zhang@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
parent 3e3e50fe
No related branches found
No related tags found
No related merge requests found
......@@ -330,7 +330,8 @@ void ext4_release_system_zone(struct super_block *sb)
{
struct ext4_system_blocks *system_blks;
system_blks = rcu_dereference(EXT4_SB(sb)->system_blks);
system_blks = rcu_dereference_protected(EXT4_SB(sb)->system_blks,
lockdep_is_held(&sb->s_umount));
rcu_assign_pointer(EXT4_SB(sb)->system_blks, NULL);
if (system_blks)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment