Chao Yu
cf968790a0
f2fs: fix to avoid accessing uninitialized spinlock
[ Upstream commit cc249e4cba ]
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-31 13:32:32 +01:00
..
2022-07-02 18:52:21 +09:00
2022-05-09 16:21:44 -04:00
2022-08-19 13:03:10 +02:00
2022-11-30 10:02:37 -08:00
2022-07-17 17:31:42 -07:00
2022-08-02 12:34:03 -04:00
2022-05-09 16:21:44 -04:00
2022-11-25 13:24:05 -08:00
2022-09-24 07:00:00 +02:00
2022-11-14 10:29:05 +01:00
2022-12-21 17:48:11 +01:00
2022-08-02 12:34:03 -04:00
2022-12-31 13:32:22 +01:00
2022-08-02 12:34:02 -04:00
2022-10-19 20:54:43 -07:00
2022-12-31 13:31:58 +01:00
2022-10-04 13:38:03 -07:00
2022-10-06 17:31:02 -07:00
2022-10-21 11:09:40 +02:00
2022-05-09 16:21:45 -04:00
2022-12-31 13:31:59 +01:00
2022-10-11 17:42:58 -06:00
2022-08-17 17:25:04 -04:00
2022-10-11 17:42:58 -06:00
2022-11-07 12:53:43 -05:00
2022-12-31 13:32:32 +01:00
2022-10-11 17:42:58 -06:00
2022-08-02 12:34:03 -04:00
2022-12-07 11:49:18 -08:00
2022-11-23 09:10:42 +01:00
2022-10-10 20:13:22 -07:00
2022-12-31 13:32:00 +01:00
2022-09-11 21:55:05 -07:00
2022-09-19 22:46:25 +02:00
2022-05-09 16:21:45 -04:00
2022-11-08 15:57:22 -08:00
2022-10-02 11:42:19 -07:00
2022-10-12 11:00:22 -07:00
2022-10-10 17:53:04 -07:00
2022-09-21 10:38:07 +02:00
2022-08-03 10:35:43 -07:00
2022-11-10 19:03:42 +01:00
2022-11-25 00:52:28 -05:00
2022-12-31 13:32:00 +01:00
2022-09-24 07:00:00 +02:00
2022-11-15 16:56:07 +00:00
2022-12-31 13:32:23 +01:00
2022-12-31 13:32:00 +01:00
2022-11-30 14:49:40 -08:00
2022-10-07 08:28:50 -07:00
2022-10-12 11:00:22 -07:00
2022-10-11 17:42:58 -06:00
2022-12-31 13:31:58 +01:00
2022-05-09 16:21:44 -04:00
2022-10-13 09:56:14 -07:00
2022-12-31 13:31:54 +01:00
2022-11-22 18:50:44 -08:00
2022-12-31 13:31:54 +01:00
2022-05-09 16:21:44 -04:00
2022-09-11 21:55:07 -07:00
2022-09-29 15:37:30 +02:00
2022-10-10 19:45:17 -07:00
2022-10-12 11:00:22 -07:00
2022-05-09 16:21:46 -04:00
2022-10-05 01:55:27 -05:00
2022-10-28 13:37:21 -07:00
2022-04-05 15:39:19 +02:00
2022-12-31 13:32:00 +01:00
2022-09-08 17:10:54 -04:00
2022-10-16 15:27:07 -07:00
2022-12-21 17:48:06 +01:00
2022-09-11 20:26:07 -07:00
2022-05-09 16:21:46 -04:00
2022-10-06 17:36:48 -07:00
2022-10-31 08:58:22 -07:00
2022-11-25 17:01:22 +09:00
2022-09-11 21:55:08 -07:00
2022-08-20 11:34:04 -04:00
2022-08-08 10:39:29 -07:00
2022-09-24 07:00:00 +02:00
2022-10-25 15:11:21 -07:00
2022-04-22 10:57:18 -07:00
2022-10-12 11:00:22 -07:00
2022-10-10 17:53:04 -07:00
2022-08-20 11:34:33 -04:00
2022-09-24 18:14:12 -07:00
2022-10-10 19:45:17 -07:00
2022-09-20 08:24:38 -06:00
2022-09-21 10:30:42 -06:00
2022-09-11 21:55:07 -07:00
2022-10-29 17:49:33 -07:00
2022-06-10 16:10:23 -04:00
2022-09-01 17:36:39 -04:00
2022-08-16 10:59:54 -04:00
2022-10-31 15:30:11 -04:00
2022-11-22 17:00:00 -05:00
2022-05-19 23:25:10 -04:00
2022-10-06 16:49:00 -07:00
2022-10-06 17:31:02 -07:00
2022-04-01 19:35:56 -07:00
2022-09-11 20:26:10 -07:00
2022-10-10 14:21:11 -07:00
2022-06-16 19:58:21 -07:00
2022-12-31 13:31:58 +01:00
2022-08-17 15:08:58 -04:00
2022-09-27 07:11:02 -07:00
2022-09-30 23:46:52 -04:00
2022-07-05 16:18:21 -04:00
2022-08-03 10:35:43 -07:00
2022-11-19 02:22:11 -05:00
2022-08-17 11:27:11 +02:00
2022-08-20 11:34:04 -04:00
2022-10-06 17:13:18 -07:00
2022-08-20 11:34:04 -04:00
2022-10-10 17:53:04 -07:00
2022-06-28 13:58:05 -04:00
2022-11-25 00:52:28 -05:00
2022-08-17 17:25:04 -04:00
2022-08-05 16:32:45 -07:00
2022-05-22 21:03:01 +01:00
2022-08-08 22:37:23 -04:00
2022-09-11 19:47:12 -05:00
2022-10-19 20:54:43 -07:00
2022-04-26 13:36:25 -07:00
2022-11-07 12:58:26 -08:00
2022-12-31 13:31:55 +01:00