diff options
author | Jan Kara <jack@suse.cz> | 2023-05-04 15:55:24 +0300 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2023-05-14 01:05:04 +0300 |
commit | 492888df0c7b42fc0843631168b0021bc4caee84 (patch) | |
tree | dc11ae138e5738d0b5e9e471b650ad5ad71b80d7 /fs/eventpoll.c | |
parent | 00d873c17e29cc32d90ca852b82685f1673acaa5 (diff) | |
download | linux-492888df0c7b42fc0843631168b0021bc4caee84.tar.xz |
ext4: fix data races when using cached status extents
When using cached extent stored in extent status tree in tree->cache_es
another process holding ei->i_es_lock for reading can be racing with us
setting new value of tree->cache_es. If the compiler would decide to
refetch tree->cache_es at an unfortunate moment, it could result in a
bogus in_range() check. Fix the possible race by using READ_ONCE() when
using tree->cache_es only under ei->i_es_lock for reading.
Cc: stable@kernel.org
Reported-by: syzbot+4a03518df1e31b537066@syzkaller.appspotmail.com
Link: https://lore.kernel.org/all/000000000000d3b33905fa0fd4a6@google.com
Suggested-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230504125524.10802-1-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/eventpoll.c')
0 files changed, 0 insertions, 0 deletions