kernel_samsung_a53x/fs/nilfs2
Ryusuke Konishi fef5e723c2 nilfs2: replace WARN_ONs for invalid DAT metadata block requests
commit 5124a0a549857c4b87173280e192eea24dea72ad upstream.

If DAT metadata file block access fails due to corruption of the DAT file
or abnormal virtual block numbers held by b-trees or inodes, a kernel
warning is generated.

This replaces the WARN_ONs by error output, so that a kernel, booted with
panic_on_warn, does not panic.  This patch also replaces the detected
return code -ENOENT with another internal code -EINVAL to notify the bmap
layer of metadata corruption.  When the bmap layer sees -EINVAL, it
handles the abnormal situation with nilfs_bmap_convert_error() and finally
returns code -EIO as it should.

Link: https://lkml.kernel.org/r/0000000000005cc3d205ea23ddcf@google.com
Link: https://lkml.kernel.org/r/20230126164114.6911-1-konishi.ryusuke@gmail.com
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Reported-by: <syzbot+5d5d25f90f195a3cfcb4@syzkaller.appspotmail.com>
Tested-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-18 12:13:40 +01:00
..
alloc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
alloc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bmap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bmap.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
btnode.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
btnode.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
btree.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
btree.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpfile.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpfile.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dat.c nilfs2: replace WARN_ONs for invalid DAT metadata block requests 2024-11-18 12:13:40 +01:00
dat.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dir.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
direct.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
direct.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
export.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
file.c nilfs2: fix hang in nilfs_lookup_dirty_data_buffers() 2024-11-18 12:13:32 +01:00
gcinode.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ifile.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ifile.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inode.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ioctl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mdt.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mdt.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
namei.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nilfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
recovery.c nilfs2: fix data corruption in dsync block recovery for small block sizes 2024-11-18 12:13:32 +01:00
segbuf.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
segbuf.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
segment.c nilfs2: fix potential bug in end_buffer_async_write 2024-11-18 12:13:39 +01:00
segment.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sufile.c nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage() 2024-11-18 12:11:41 +01:00
sufile.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
super.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sysfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sysfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
the_nilfs.c nilfs2: fix missing error check for sb_set_blocksize call 2024-11-18 12:11:41 +01:00
the_nilfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00