android_kernel_xiaomi_sm8450/fs/nilfs2
Ryusuke Konishi 157c0d94b4 nilfs2: protect references to superblock parameters exposed in sysfs
[ Upstream commit 683408258917541bdb294cd717c210a04381931e ]

The superblock buffers of nilfs2 can not only be overwritten at runtime
for modifications/repairs, but they are also regularly swapped, replaced
during resizing, and even abandoned when degrading to one side due to
backing device issues.  So, accessing them requires mutual exclusion using
the reader/writer semaphore "nilfs->ns_sem".

Some sysfs attribute show methods read this superblock buffer without the
necessary mutual exclusion, which can cause problems with pointer
dereferencing and memory access, so fix it.

Link: https://lkml.kernel.org/r/20240811100320.9913-1-konishi.ryusuke@gmail.com
Fixes: da7141fb78 ("nilfs2: add /sys/fs/nilfs2/<device> group")
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-09-12 11:06:51 +02:00
..
alloc.c nilfs2: fix incorrect inode allocation from reserved inodes 2024-07-18 13:05:45 +02:00
alloc.h nilfs2: fix incorrect inode allocation from reserved inodes 2024-07-18 13:05:45 +02:00
bmap.c nilfs2: fix infinite loop in nilfs_mdt_get_block() 2023-05-17 11:47:36 +02:00
bmap.h
btnode.c nilfs2: handle inconsistent state in nilfs_btnode_create_block() 2024-08-19 05:41:02 +02:00
btnode.h nilfs2: fix lockdep warnings in page operations for btree nodes 2022-05-25 09:17:54 +02:00
btree.c nilfs2: handle inconsistent state in nilfs_btnode_create_block() 2024-08-19 05:41:02 +02:00
btree.h
cpfile.c
cpfile.h
dat.c nilfs2: fix incorrect inode allocation from reserved inodes 2024-07-18 13:05:45 +02:00
dat.h
dir.c nilfs2: fix kernel bug on rename operation of broken directory 2024-07-18 13:05:50 +02:00
direct.c nilfs2: fix failure to detect DAT corruption in btree and direct mappings 2024-04-13 12:58:39 +02:00
direct.h
export.h
file.c nilfs2: fix hang in nilfs_lookup_dirty_data_buffers() 2024-02-23 08:42:28 +01:00
gcinode.c nilfs2: fix potential use after free in nilfs_gccache_submit_read_data() 2023-10-10 21:53:34 +02:00
ifile.c nilfs2: fix incorrect inode allocation from reserved inodes 2024-07-18 13:05:45 +02:00
ifile.h
inode.c nilfs2: prevent kernel bug at submit_bh_wbc() 2024-04-13 12:58:39 +02:00
ioctl.c nilfs2: fix out-of-range warning 2024-06-16 13:32:01 +02:00
Kconfig
Makefile
mdt.c nilfs2: fix lockdep warnings during disk space reclamation 2022-05-25 09:17:54 +02:00
mdt.h nilfs2: fix lockdep warnings during disk space reclamation 2022-05-25 09:17:54 +02:00
namei.c
nilfs.h nilfs2: add missing check for inode numbers on directory entries 2024-07-18 13:05:42 +02:00
page.c nilfs2: prevent general protection fault in nilfs_clear_dirty_page() 2023-06-28 10:28:09 +02:00
page.h
recovery.c nilfs2: fix missing cleanup on rollforward recovery error 2024-09-12 11:06:43 +02:00
segbuf.c nilfs2: fix buffer corruption due to concurrent device reads 2023-06-28 10:28:07 +02:00
segbuf.h
segment.c nilfs2: fix state management in error path of log writing function 2024-09-12 11:06:44 +02:00
segment.h
sufile.c nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage() 2023-12-13 18:27:02 +01:00
sufile.h
super.c nilfs2: fix buffer corruption due to concurrent device reads 2023-06-28 10:28:07 +02:00
sysfs.c nilfs2: protect references to superblock parameters exposed in sysfs 2024-09-12 11:06:51 +02:00
sysfs.h
the_nilfs.c nilfs2: fix inode number range checks 2024-07-18 13:05:42 +02:00
the_nilfs.h nilfs2: fix inode number range checks 2024-07-18 13:05:42 +02:00