INFO: task hung in ext4_quota_write (2)

Status: upstream: reported C repro on 2024/12/19 10:44
Bug presence: origin:lts-only
[Documentation on labels]
Reported-by: syzbot+ec7cb5db60b4d8e2071b@syzkaller.appspotmail.com
First crash: 642d, last: 2d22h
Fix bisection: failed (error log, bisect log)
  
Bug presence (2)
Date Name Commit Repro Result
2025/03/22 linux-6.1.y (ToT) 344a09659766 C [report] INFO: task hung in ext4_quota_write
2025/03/22 upstream (ToT) 88d324e69ea9 C Didn't crash
Similar bugs (4)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 INFO: task hung in ext4_quota_write (2) origin:lts-only 1 syz, C error 11 362d 872d 0/3 upstream: reported C repro on 2024/05/03 23:59
linux-6.1 INFO: task hung in ext4_quota_write origin:upstream missing-backport 1 syz, C done 9 760d 1000d 3/3 fixed on 2024/10/08 03:39
upstream INFO: task hung in ext4_quota_write ext4 1 syz, C inconclusive 22 890d 995d 25/29 fixed on 2024/06/05 13:52
linux-5.15 INFO: task hung in ext4_quota_write 1 2 1000d 1000d 0/3 auto-obsoleted due to no activity on 2024/04/05 13:59
Fix bisection attempts (3)
Created Duration User Patch Repo Result
2025/11/21 13:34 2h08m fix candidate upstream OK (0) job log
2025/05/12 20:29 18m fix candidate upstream error job log
2025/03/20 08:34 16m bisect fix linux-6.1.y error job log

Sample crash report:
INFO: task syz.0.17:4536 blocked for more than 143 seconds.
      Not tainted syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz.0.17        state:D stack:0     pid:4536  ppid:4460   flags:0x00000001
Call trace:
 __switch_to+0x2f4/0x550 arch/arm64/kernel/process.c:555
 context_switch kernel/sched/core.c:5246 [inline]
 __schedule+0xdb4/0x1a6c kernel/sched/core.c:6563
 schedule+0xc4/0x170 kernel/sched/core.c:6639
 io_schedule+0x84/0x154 kernel/sched/core.c:8799
 bit_wait_io+0x1c/0xac kernel/sched/wait_bit.c:209
 __wait_on_bit_lock+0xb8/0x1dc kernel/sched/wait_bit.c:90
 out_of_line_wait_on_bit_lock+0x130/0x184 kernel/sched/wait_bit.c:117
 wait_on_bit_lock_io include/linux/wait_bit.h:208 [inline]
 __lock_buffer+0x78/0xa8 fs/buffer.c:69
 lock_buffer include/linux/buffer_head.h:397 [inline]
 ext4_quota_write+0x330/0x544 fs/ext4/super.c:7243
 qtree_write_dquot+0x1e0/0x4e4 fs/quota/quota_tree.c:462
 v2_write_dquot+0xf0/0x180 fs/quota/quota_v2.c:361
 dquot_commit+0x12c/0x1c8 fs/quota/dquot.c:542
 ext4_write_dquot+0x1b4/0x320 fs/ext4/super.c:6817
 ext4_mark_dquot_dirty+0xe8/0x150 fs/ext4/super.c:6894
 mark_dquot_dirty fs/quota/dquot.c:400 [inline]
 mark_all_dquot_dirty+0x108/0x424 fs/quota/dquot.c:440
 __dquot_free_space+0x768/0xaa4 fs/quota/dquot.c:1967
 dquot_free_space_nodirty include/linux/quotaops.h:372 [inline]
 ext4_xattr_inode_free_quota+0x10c/0x184 fs/ext4/xattr.c:882
 ext4_xattr_set_entry+0xa2c/0x15f4 fs/ext4/xattr.c:1677
 ext4_xattr_block_set+0x16ac/0x28f8 fs/ext4/xattr.c:1910
 ext4_xattr_set_handle+0xc00/0x12d4 fs/ext4/xattr.c:2403
 ext4_xattr_set+0x1e8/0x2b4 fs/ext4/xattr.c:2505
 ext4_xattr_trusted_set+0x4c/0x64 fs/ext4/xattr_trusted.c:38
 __vfs_setxattr+0x374/0x390 fs/xattr.c:182
 __vfs_setxattr_noperm+0x120/0x56c fs/xattr.c:216
 __vfs_setxattr_locked+0x1e8/0x214 fs/xattr.c:277
 vfs_setxattr+0x158/0x2a8 fs/xattr.c:309
 do_setxattr fs/xattr.c:594 [inline]
 setxattr+0x258/0x2d8 fs/xattr.c:617
 path_setxattr+0x130/0x260 fs/xattr.c:636
 __do_sys_setxattr fs/xattr.c:652 [inline]
 __se_sys_setxattr fs/xattr.c:648 [inline]
 __arm64_sys_setxattr+0xc4/0xe0 fs/xattr.c:648
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x290 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x13c/0x258 arch/arm64/kernel/syscall.c:140
 do_el0_svc+0x5c/0x134 arch/arm64/kernel/syscall.c:204
 el0_svc+0x58/0x128 arch/arm64/kernel/entry-common.c:637
 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585

Showing all locks held in the system:
1 lock held by rcu_tasks_kthre/12:
 #0: ffff800015597db0 (rcu_tasks.tasks_gp_mutex){+.+.}-{3:3}, at: rcu_tasks_one_gp+0x40/0xc48 kernel/rcu/tasks.h:517
1 lock held by rcu_tasks_trace/13:
 #0: ffff8000155985d0 (rcu_tasks_trace.tasks_gp_mutex){+.+.}-{3:3}, at: rcu_tasks_one_gp+0x40/0xc48 kernel/rcu/tasks.h:517
1 lock held by khungtaskd/28:
 #0: ffff800015597440 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0xc/0x44 include/linux/rcupdate.h:349
2 locks held by kworker/u4:3/89:
 #0: ffff0000c4b95938 ((wq_completion)quota_events_unbound){+.+.}-{0:0}, at: process_one_work+0x69c/0x13bc kernel/workqueue.c:-1
 #1: ffff80001ea27c40 ((quota_release_work).work){+.+.}-{0:0}, at: process_one_work+0x6e8/0x13bc kernel/workqueue.c:2267
2 locks held by kworker/u4:4/1603:
1 lock held by syslogd/3925:
 #0: ffff00019f381398 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested kernel/sched/core.c:538 [inline]
 #0: ffff00019f381398 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock kernel/sched/sched.h:1362 [inline]
 #0: ffff00019f381398 (&rq->__lock){-.-.}-{2:2}, at: rq_lock kernel/sched/sched.h:1652 [inline]
 #0: ffff00019f381398 (&rq->__lock){-.-.}-{2:2}, at: __schedule+0x2bc/0x1a6c kernel/sched/core.c:6479
2 locks held by getty/4084:
 #0: ffff0000d6a62098 (&tty->ldisc_sem){++++}-{0:0}, at: ldsem_down_read+0x3c/0x4c drivers/tty/tty_ldsem.c:340
 #1: ffff80001ea332f0 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0x2e8/0xfa8 drivers/tty/n_tty.c:2198
6 locks held by syz.0.17/4536:
 #0: ffff0000d79fa460 (sb_writers#3){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:402
 #1: ffff0000e1bac030 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: inode_lock include/linux/fs.h:764 [inline]
 #1: ffff0000e1bac030 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: vfs_setxattr+0x138/0x2a8 fs/xattr.c:308
 #2: ffff0000e1babcf8 (&ei->xattr_sem){++++}-{3:3}, at: ext4_write_lock_xattr fs/ext4/xattr.h:158 [inline]
 #2: ffff0000e1babcf8 (&ei->xattr_sem){++++}-{3:3}, at: ext4_xattr_set_handle+0x138/0x12d4 fs/ext4/xattr.c:2318
 #3: ffff8000156ccd48 (dquot_srcu){....}-{0:0}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:349
 #4: ffff0000e56c20a8 (&dquot->dq_lock){+.+.}-{3:3}, at: dquot_commit+0x54/0x1c8 fs/quota/dquot.c:535
 #5: ffff0000d79fa208 (&s->s_dquot.dqio_sem){++++}-{3:3}, at: v2_write_dquot+0x80/0x180 fs/quota/quota_v2.c:359
6 locks held by syz.1.18/4556:
 #0: ffff0000c31e2460 (sb_writers#3){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:402
 #1: ffff0000e5761810 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: inode_lock include/linux/fs.h:764 [inline]
 #1: ffff0000e5761810 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: vfs_setxattr+0x138/0x2a8 fs/xattr.c:308
 #2: ffff0000e57614d8 (&ei->xattr_sem){++++}-{3:3}, at: ext4_write_lock_xattr fs/ext4/xattr.h:158 [inline]
 #2: ffff0000e57614d8 (&ei->xattr_sem){++++}-{3:3}, at: ext4_xattr_set_handle+0x138/0x12d4 fs/ext4/xattr.c:2318
 #3: ffff8000156ccd48 (dquot_srcu){....}-{0:0}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:349
 #4: ffff0000e56c2428 (&dquot->dq_lock){+.+.}-{3:3}, at: dquot_commit+0x54/0x1c8 fs/quota/dquot.c:535
 #5: ffff0000c31e2208 (&s->s_dquot.dqio_sem){++++}-{3:3}, at: v2_write_dquot+0x80/0x180 fs/quota/quota_v2.c:359
4 locks held by kworker/u4:6/4560:
 #0: ffff00019f381398 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x2c/0x44 kernel/sched/core.c:538
 #1: ffff00019f36dbc8 (&per_cpu_ptr(group->pcpu, cpu)->seq){-.-.}-{0:0}, at: psi_task_switch+0x35c/0x5b8 kernel/sched/psi.c:999
 #2: ffff0000dbc187a8 (&rdev->wiphy.mtx){+.+.}-{3:3}, at: wiphy_lock include/net/cfg80211.h:5693 [inline]
 #2: ffff0000dbc187a8 (&rdev->wiphy.mtx){+.+.}-{3:3}, at: cfg80211_wiphy_work+0x3c/0x220 net/wireless/core.c:420
 #3: ffff0000d487cd40 (&wdev->mtx){+.+.}-{3:3}, at: sdata_lock net/mac80211/ieee80211_i.h:1114 [inline]
 #3: ffff0000d487cd40 (&wdev->mtx){+.+.}-{3:3}, at: ieee80211_ibss_work+0xa8/0xd68 net/mac80211/ibss.c:1680
6 locks held by syz.2.19/4576:
 #0: ffff0000d131e460 (sb_writers#3){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:402
 #1: ffff0000e578de48 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: inode_lock include/linux/fs.h:764 [inline]
 #1: ffff0000e578de48 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: vfs_setxattr+0x138/0x2a8 fs/xattr.c:308
 #2: ffff0000e578db10 (&ei->xattr_sem){++++}-{3:3}, at: ext4_write_lock_xattr fs/ext4/xattr.h:158 [inline]
 #2: ffff0000e578db10 (&ei->xattr_sem){++++}-{3:3}, at: ext4_xattr_set_handle+0x138/0x12d4 fs/ext4/xattr.c:2318
 #3: ffff8000156ccd48 (dquot_srcu){....}-{0:0}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:349
 #4: ffff0000e56c27a8 (&dquot->dq_lock){+.+.}-{3:3}, at: dquot_commit+0x54/0x1c8 fs/quota/dquot.c:535
 #5: ffff0000d131e208 (&s->s_dquot.dqio_sem){++++}-{3:3}, at: v2_write_dquot+0x80/0x180 fs/quota/quota_v2.c:359
6 locks held by syz.3.20/4601:
 #0: ffff0000ccef2460 (sb_writers#3){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:402
 #1: ffff0000e5767258 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: inode_lock include/linux/fs.h:764 [inline]
 #1: ffff0000e5767258 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: vfs_setxattr+0x138/0x2a8 fs/xattr.c:308
 #2: ffff0000e5766f20 (&ei->xattr_sem){++++}-{3:3}, at: ext4_write_lock_xattr fs/ext4/xattr.h:158 [inline]
 #2: ffff0000e5766f20 (&ei->xattr_sem){++++}-{3:3}, at: ext4_xattr_set_handle+0x138/0x12d4 fs/ext4/xattr.c:2318
 #3: ffff8000156ccd48 (dquot_srcu){....}-{0:0}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:349
 #4: ffff0000e5640268 (&dquot->dq_lock){+.+.}-{3:3}, at: dquot_commit+0x54/0x1c8 fs/quota/dquot.c:535
 #5: ffff0000ccef2208 (&s->s_dquot.dqio_sem){++++}-{3:3}, at: v2_write_dquot+0x80/0x180 fs/quota/quota_v2.c:359
6 locks held by syz.4.21/4629:
 #0: ffff0000f07c8460 (sb_writers#3){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:402
 #1: ffff0000e5615440 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: inode_lock include/linux/fs.h:764 [inline]
 #1: ffff0000e5615440 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: vfs_setxattr+0x138/0x2a8 fs/xattr.c:308
 #2: ffff0000e5615108 (&ei->xattr_sem){++++}-{3:3}, at: ext4_write_lock_xattr fs/ext4/xattr.h:158 [inline]
 #2: ffff0000e5615108 (&ei->xattr_sem){++++}-{3:3}, at: ext4_xattr_set_handle+0x138/0x12d4 fs/ext4/xattr.c:2318
 #3: ffff8000156ccd48 (dquot_srcu){....}-{0:0}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:349
 #4: ffff0000e56c2b28 (&dquot->dq_lock){+.+.}-{3:3}, at: dquot_commit+0x54/0x1c8 fs/quota/dquot.c:535
 #5: ffff0000f07c8208 (&s->s_dquot.dqio_sem){++++}-{3:3}, at: v2_write_dquot+0x80/0x180 fs/quota/quota_v2.c:359
6 locks held by syz.5.22/4657:
 #0: ffff0000f30be460 (sb_writers#3){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:402
 #1: ffff0000e561a218 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: inode_lock include/linux/fs.h:764 [inline]
 #1: ffff0000e561a218 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: vfs_setxattr+0x138/0x2a8 fs/xattr.c:308
 #2: ffff0000e5619ee0 (&ei->xattr_sem){++++}-{3:3}, at: ext4_write_lock_xattr fs/ext4/xattr.h:158 [inline]
 #2: ffff0000e5619ee0 (&ei->xattr_sem){++++}-{3:3}, at: ext4_xattr_set_handle+0x138/0x12d4 fs/ext4/xattr.c:2318
 #3: ffff8000156ccd48 (dquot_srcu){....}-{0:0}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:349
 #4: ffff0000e5640428 (&dquot->dq_lock){+.+.}-{3:3}, at: dquot_commit+0x54/0x1c8 fs/quota/dquot.c:535
 #5: ffff0000f30be208 (&s->s_dquot.dqio_sem){++++}-{3:3}, at: v2_write_dquot+0x80/0x180 fs/quota/quota_v2.c:359
6 locks held by syz.6.23/4686:
 #0: ffff0000f4c60460 (sb_writers#3){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:402
 #1: ffff0000e56bac20 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: inode_lock include/linux/fs.h:764 [inline]
 #1: ffff0000e56bac20 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: vfs_setxattr+0x138/0x2a8 fs/xattr.c:308
 #2: ffff0000e56ba8e8 (&ei->xattr_sem){++++}-{3:3}, at: ext4_write_lock_xattr fs/ext4/xattr.h:158 [inline]
 #2: ffff0000e56ba8e8 (&ei->xattr_sem){++++}-{3:3}, at: ext4_xattr_set_handle+0x138/0x12d4 fs/ext4/xattr.c:2318
 #3: ffff8000156ccd48 (dquot_srcu){....}-{0:0}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:349
 #4: ffff0000e56c2ea8 (&dquot->dq_lock){+.+.}-{3:3}, at: dquot_commit+0x54/0x1c8 fs/quota/dquot.c:535
 #5: ffff0000f4c60208 (&s->s_dquot.dqio_sem){++++}-{3:3}, at: v2_write_dquot+0x80/0x180 fs/quota/quota_v2.c:359
6 locks held by syz.7.24/4721:
 #0: ffff0000c362c460 (sb_writers#3){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:402
 #1: ffff0000f16c0400 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: inode_lock include/linux/fs.h:764 [inline]
 #1: ffff0000f16c0400 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: vfs_setxattr+0x138/0x2a8 fs/xattr.c:308
 #2: ffff0000f16c00c8 (&ei->xattr_sem){++++}-{3:3}, at: ext4_write_lock_xattr fs/ext4/xattr.h:158 [inline]
 #2: ffff0000f16c00c8 (&ei->xattr_sem){++++}-{3:3}, at: ext4_xattr_set_handle+0x138/0x12d4 fs/ext4/xattr.c:2318
 #3: ffff8000156ccd48 (dquot_srcu){....}-{0:0}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:349
 #4: ffff0000e56c3228 (&dquot->dq_lock){+.+.}-{3:3}, at: dquot_commit+0x54/0x1c8 fs/quota/dquot.c:535
 #5: ffff0000c362c208 (&s->s_dquot.dqio_sem){++++}-{3:3}, at: v2_write_dquot+0x80/0x180 fs/quota/quota_v2.c:359
6 locks held by syz.8.25/4750:
 #0: ffff0000dac96460 (sb_writers#3){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:402
 #1: ffff0000e561c030 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: inode_lock include/linux/fs.h:764 [inline]
 #1: ffff0000e561c030 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: vfs_setxattr+0x138/0x2a8 fs/xattr.c:308
 #2: ffff0000e561bcf8 (&ei->xattr_sem){++++}-{3:3}, at: ext4_write_lock_xattr fs/ext4/xattr.h:158 [inline]
 #2: ffff0000e561bcf8 (&ei->xattr_sem){++++}-{3:3}, at: ext4_xattr_set_handle+0x138/0x12d4 fs/ext4/xattr.c:2318
 #3: ffff8000156ccd48 (dquot_srcu){....}-{0:0}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:349
 #4: ffff0000e56c35a8 (&dquot->dq_lock){+.+.}-{3:3}, at: dquot_commit+0x54/0x1c8 fs/quota/dquot.c:535
 #5: ffff0000dac96208 (&s->s_dquot.dqio_sem){++++}-{3:3}, at: v2_write_dquot+0x80/0x180 fs/quota/quota_v2.c:359
6 locks held by syz.9.26/4778:
 #0: ffff0000d8452460 (sb_writers#3){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:402
 #1: ffff0000e56ba218 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: inode_lock include/linux/fs.h:764 [inline]
 #1: ffff0000e56ba218 (&type->i_mutex_dir_key#3){++++}-{3:3}, at: vfs_setxattr+0x138/0x2a8 fs/xattr.c:308
 #2: ffff0000e56b9ee0 (&ei->xattr_sem){++++}-{3:3}, at: ext4_write_lock_xattr fs/ext4/xattr.h:158 [inline]
 #2: ffff0000e56b9ee0 (&ei->xattr_sem){++++}-{3:3}, at: ext4_xattr_set_handle+0x138/0x12d4 fs/ext4/xattr.c:2318
 #3: ffff8000156ccd48 (dquot_srcu){....}-{0:0}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:349
 #4: ffff0000e56c3768 (&dquot->dq_lock){+.+.}-{3:3}, at: dquot_commit+0x54/0x1c8 fs/quota/dquot.c:535
 #5: ffff0000d8452208 (&s->s_dquot.dqio_sem){++++}-{3:3}, at: v2_write_dquot+0x80/0x180 fs/quota/quota_v2.c:359

=============================================


Crashes (4):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/09/20 01:47 linux-6.1.y 1a8763b93150 853b104b .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (corrupt fs)] ci2-linux-6-1-kasan-arm64 INFO: task hung in ext4_quota_write
2025/02/17 06:27 linux-6.1.y 0cbb5f65e52f 40a34ec9 .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (corrupt fs)] ci2-linux-6-1-kasan-arm64 INFO: task hung in ext4_quota_write
2025/02/09 21:58 linux-6.1.y 0cbb5f65e52f ef44b750 .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (corrupt fs)] ci2-linux-6-1-kasan-arm64 INFO: task hung in ext4_quota_write
2024/12/19 10:44 linux-6.1.y 52f863f820fd 1432fc84 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 INFO: task hung in ext4_quota_write
* Struck through repros no longer work on HEAD.