Shijie Luo
e94c149b8a
ext4: add cond_resched() to ext4_protect_reserved_inode
...
commit af133ade9a
upstream.
When journal size is set too big by "mkfs.ext4 -J size=", or when
we mount a crafted image to make journal inode->i_size too big,
the loop, "while (i < num)", holds cpu too long. This could cause
soft lockup.
[ 529.357541] Call trace:
[ 529.357551] dump_backtrace+0x0/0x198
[ 529.357555] show_stack+0x24/0x30
[ 529.357562] dump_stack+0xa4/0xcc
[ 529.357568] watchdog_timer_fn+0x300/0x3e8
[ 529.357574] __hrtimer_run_queues+0x114/0x358
[ 529.357576] hrtimer_interrupt+0x104/0x2d8
[ 529.357580] arch_timer_handler_virt+0x38/0x58
[ 529.357584] handle_percpu_devid_irq+0x90/0x248
[ 529.357588] generic_handle_irq+0x34/0x50
[ 529.357590] __handle_domain_irq+0x68/0xc0
[ 529.357593] gic_handle_irq+0x6c/0x150
[ 529.357595] el1_irq+0xb8/0x140
[ 529.357599] __ll_sc_atomic_add_return_acquire+0x14/0x20
[ 529.357668] ext4_map_blocks+0x64/0x5c0 [ext4]
[ 529.357693] ext4_setup_system_zone+0x330/0x458 [ext4]
[ 529.357717] ext4_fill_super+0x2170/0x2ba8 [ext4]
[ 529.357722] mount_bdev+0x1a8/0x1e8
[ 529.357746] ext4_mount+0x44/0x58 [ext4]
[ 529.357748] mount_fs+0x50/0x170
[ 529.357752] vfs_kern_mount.part.9+0x54/0x188
[ 529.357755] do_mount+0x5ac/0xd78
[ 529.357758] ksys_mount+0x9c/0x118
[ 529.357760] __arm64_sys_mount+0x28/0x38
[ 529.357764] el0_svc_common+0x78/0x130
[ 529.357766] el0_svc_handler+0x38/0x78
[ 529.357769] el0_svc+0x8/0xc
[ 541.356516] watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [mount:18674]
Link: https://lore.kernel.org/r/20200211011752.29242-1-luoshijie1@huawei.com
Reviewed-by: Jan Kara <jack@suse.cz >
Signed-off-by: Shijie Luo <luoshijie1@huawei.com >
Signed-off-by: Theodore Ts'o <tytso@mit.edu >
Cc: stable@kernel.org
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-05-20 08:15:29 +02:00
..
2017-10-12 11:51:26 +02:00
2014-01-25 23:58:19 -05:00
2020-03-11 07:53:01 +01:00
2015-04-02 23:47:42 -04:00
2020-05-20 08:15:29 +02:00
2020-02-28 15:42:12 +01:00
2018-07-11 16:26:44 +02:00
2015-10-17 22:57:06 -04:00
2019-03-27 14:13:03 +09:00
2020-05-02 17:23:18 +02:00
2016-04-27 01:11:21 -04:00
2015-09-23 12:46:17 -04:00
2020-05-02 17:23:19 +02:00
2019-05-21 18:49:01 +02:00
2016-09-05 23:21:43 -04:00
2015-04-02 23:47:42 -04:00
2020-05-02 17:23:18 +02:00
2019-04-05 22:29:04 +02:00
2020-01-29 10:24:29 +01:00
2020-05-05 19:14:29 +02:00
2020-05-02 17:23:18 +02:00
2016-07-10 14:01:03 -04:00
2016-07-10 14:01:03 -04:00
2020-05-02 17:23:18 +02:00
2016-10-15 09:57:31 -04:00
2020-02-28 15:42:52 +01:00
2020-02-28 15:42:11 +01:00
2018-11-13 11:16:52 -08:00
2020-05-02 17:23:18 +02:00
2020-02-14 16:31:07 -05:00
2016-07-26 19:55:54 -07:00
2020-05-02 17:23:18 +02:00
2020-05-02 17:23:19 +02:00
2016-10-10 17:11:50 -07:00
2018-09-05 09:20:06 +02:00
2015-12-07 14:28:03 -05:00
2016-05-27 15:39:43 -04:00
2016-05-27 15:39:43 -04:00
2016-05-27 15:39:43 -04:00
2019-01-09 16:16:43 +01:00
2017-03-12 06:41:41 +01:00