kernel_optimize_test/fs/f2fs
Chao Yu efdefbe8b7 f2fs: fix to do sanity check for inline inode
commit 677a82b44ebf263d4f9a0cfbd576a6ade797a07b upstream.

Yanming reported a kernel bug in Bugzilla kernel [1], which can be
reproduced. The bug message is:

The kernel message is shown below:

kernel BUG at fs/inode.c:611!
Call Trace:
 evict+0x282/0x4e0
 __dentry_kill+0x2b2/0x4d0
 dput+0x2dd/0x720
 do_renameat2+0x596/0x970
 __x64_sys_rename+0x78/0x90
 do_syscall_64+0x3b/0x90

[1] https://bugzilla.kernel.org/show_bug.cgi?id=215895

The bug is due to fuzzed inode has both inline_data and encrypted flags.
During f2fs_evict_inode(), as the inode was deleted by rename(), it
will cause inline data conversion due to conflicting flags. The page
cache will be polluted and the panic will be triggered in clear_inode().

Try fixing the bug by doing more sanity checks for inline data inode in
sanity_check_inode().

Cc: stable@vger.kernel.org
Reported-by: Ming Yan <yanming@tju.edu.cn>
Signed-off-by: Chao Yu <chao.yu@oppo.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-09 10:21:21 +02:00
..
acl.c
acl.h
checkpoint.c f2fs: fix to do sanity check on .cp_pack_total_block_count 2022-04-08 14:39:51 +02:00
compress.c f2fs: compress: fix to print raw data size in error path of lz4 decompression 2022-04-08 14:40:33 +02:00
data.c f2fs: fix compressed file start atomic write may cause data corruption 2022-04-08 14:40:04 +02:00
debug.c
dir.c f2fs: reduce the scope of setting fsck tag when de->name_len is zero 2021-09-18 13:40:13 +02:00
extent_cache.c
f2fs.h f2fs: fix to do sanity check for inline inode 2022-06-09 10:21:21 +02:00
file.c f2fs: fix fallocate to use file_modified to update permissions consistently 2022-06-09 10:21:21 +02:00
gc.c f2fs: fix to unlock page correctly in error path of is_alive() 2022-04-08 14:39:51 +02:00
gc.h
hash.c
inline.c f2fs: fix to do sanity check for inline inode 2022-06-09 10:21:21 +02:00
inode.c f2fs: fix to do sanity check for inline inode 2022-06-09 10:21:21 +02:00
Kconfig
Makefile
namei.c f2fs: should use GFP_NOFS for directory inodes 2021-11-18 14:04:29 +01:00
node.c f2fs: fix to avoid potential deadlock 2022-04-08 14:40:04 +02:00
node.h
recovery.c f2fs: fix to avoid racing on fsync_entry_slab by multi filesystem instances 2021-07-19 09:45:03 +02:00
segment.c f2fs: fix to do sanity check on total_data_blocks 2022-06-09 10:21:21 +02:00
segment.h f2fs: fix to do sanity check on total_data_blocks 2022-06-09 10:21:21 +02:00
shrinker.c
super.c f2fs: don't need inode lock for system hidden quota 2022-06-09 10:21:21 +02:00
sysfs.c f2fs: fix to enable ATGC correctly via gc_idle sysfs interface 2022-04-08 14:40:03 +02:00
trace.c
trace.h
verity.c f2fs: fix error handling in f2fs_end_enable_verity() 2021-05-11 14:47:34 +02:00
xattr.c f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr() 2021-12-29 12:26:05 +01:00
xattr.h