linux-stable/fs/f2fs
Chao Yu cc249e4cba f2fs: fix to avoid accessing uninitialized spinlock
syzbot reports a kernel bug:

 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x1e3/0x2cb lib/dump_stack.c:106
 assign_lock_key+0x22a/0x240 kernel/locking/lockdep.c:981
 register_lock_class+0x287/0x9b0 kernel/locking/lockdep.c:1294
 __lock_acquire+0xe4/0x1f60 kernel/locking/lockdep.c:4934
 lock_acquire+0x1a7/0x400 kernel/locking/lockdep.c:5668
 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline]
 _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:154
 spin_lock include/linux/spinlock.h:350 [inline]
 f2fs_save_errors fs/f2fs/super.c:3868 [inline]
 f2fs_handle_error+0x29/0x230 fs/f2fs/super.c:3896
 f2fs_iget+0x215/0x4bb0 fs/f2fs/inode.c:516
 f2fs_fill_super+0x47d3/0x7b50 fs/f2fs/super.c:4222
 mount_bdev+0x26c/0x3a0 fs/super.c:1401
 legacy_get_tree+0xea/0x180 fs/fs_context.c:610
 vfs_get_tree+0x88/0x270 fs/super.c:1531
 do_new_mount+0x289/0xad0 fs/namespace.c:3040
 do_mount fs/namespace.c:3383 [inline]
 __do_sys_mount fs/namespace.c:3591 [inline]
 __se_sys_mount+0x2e3/0x3d0 fs/namespace.c:3568
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x2b/0x70 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd

F2FS-fs (loop1): Failed to read F2FS meta data inode

The root cause is if sbi->error_lock may be accessed before
its initialization, fix it.

Link: https://lore.kernel.org/linux-f2fs-devel/0000000000007edb6605ecbb6442@google.com/T/#u
Reported-by: syzbot+40642be9b7e0bb28e0df@syzkaller.appspotmail.com
Fixes: 95fa90c9e5 ("f2fs: support recording errors into superblock")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2022-11-11 09:48:24 -08:00
..
acl.c f2fs: port to vfs{g,u}id_t and associated helpers 2022-10-04 13:31:43 -07:00
acl.h vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
checkpoint.c f2fs: fix return val in f2fs_start_ckpt_thread() 2022-11-01 17:56:04 -07:00
compress.c f2fs: support recording errors into superblock 2022-10-04 13:31:45 -07:00
data.c f2fs-for-6.1-rc1 2022-10-10 20:28:41 -07:00
debug.c f2fs: change to use atomic_t type form sbi.atomic_files 2022-10-07 12:57:26 -07:00
dir.c f2fs: support recording errors into superblock 2022-10-04 13:31:45 -07:00
extent_cache.c f2fs: code clean and fix a type error 2022-10-04 13:31:44 -07:00
f2fs.h f2fs: correct i_size change for atomic writes 2022-11-11 09:48:24 -08:00
file.c f2fs: correct i_size change for atomic writes 2022-11-11 09:48:24 -08:00
gc.c f2fs: replace gc_urgent_high_remaining with gc_remaining_trials 2022-11-01 17:56:04 -07:00
gc.h f2fs: remove redundant code for gc condition 2022-07-30 20:16:20 -07:00
hash.c f2fs: don't use casefolded comparison for "." and ".." 2022-05-17 11:19:23 -07:00
inline.c f2fs: support recording errors into superblock 2022-10-04 13:31:45 -07:00
inode.c f2fs: correct i_size change for atomic writes 2022-11-11 09:48:24 -08:00
iostat.c f2fs: iostat: support accounting compressed IO 2022-08-29 21:15:51 -07:00
iostat.h f2fs: iostat: support accounting compressed IO 2022-08-29 21:15:51 -07:00
Kconfig f2fs: introduce F2FS_UNFAIR_RWSEM to support unfair rwsem 2022-03-04 09:15:53 -08:00
Makefile f2fs: separate out iostat feature 2021-08-23 10:25:51 -07:00
namei.c f2fs: let's avoid to get cp_rwsem twice by f2fs_evict_inode by d_invalidate 2022-10-25 10:44:27 -07:00
node.c f2fs: allow to read node block after shutdown 2022-11-11 09:47:58 -08:00
node.h f2fs: change the current atomic write way 2022-05-12 10:14:03 -07:00
recovery.c f2fs: support recording errors into superblock 2022-10-04 13:31:45 -07:00
segment.c f2fs: correct i_size change for atomic writes 2022-11-11 09:48:24 -08:00
segment.h f2fs: support recording errors into superblock 2022-10-04 13:31:45 -07:00
shrinker.c f2fs: avoid race condition for shrinker count 2020-12-03 00:59:26 -08:00
super.c f2fs: fix to avoid accessing uninitialized spinlock 2022-11-11 09:48:24 -08:00
sysfs.c f2fs: add proc entry to show discard_plist info 2022-11-11 09:48:24 -08:00
verity.c - Alistair Popple has a series which addresses a race which causes page 2022-10-14 12:28:43 -07:00
xattr.c f2fs: support recording errors into superblock 2022-10-04 13:31:45 -07:00
xattr.h f2fs: code cleanup by removing ifdef macro surrounding 2020-05-26 18:56:10 -07:00