Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 ====================================================== WARNING: possible circular locking dependency detected 4.19.211-syzkaller #0 Not tainted ------------------------------------------------------ syz-executor.5/31849 is trying to acquire lock: 000000002f868296 ((wq_completion)"dio/%s"sb->s_id){+.+.}, at: flush_workqueue+0xe8/0x13e0 kernel/workqueue.c:2658 but task is already holding lock: 000000007a2ae8f6 (&sb->s_type->i_mutex_key#24){++++}, at: inode_lock include/linux/fs.h:748 [inline] 000000007a2ae8f6 (&sb->s_type->i_mutex_key#24){++++}, at: generic_file_write_iter+0x99/0x730 mm/filemap.c:3320 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (&sb->s_type->i_mutex_key#24){++++}: inode_lock include/linux/fs.h:748 [inline] __generic_file_fsync+0xb0/0x1f0 fs/libfs.c:989 fat_file_fsync+0x73/0x200 fs/fat/file.c:198 vfs_fsync_range+0x13a/0x220 fs/sync.c:197 generic_write_sync include/linux/fs.h:2750 [inline] dio_complete+0x763/0xac0 fs/direct-io.c:329 process_one_work+0x864/0x1570 kernel/workqueue.c:2153 worker_thread+0x64c/0x1130 kernel/workqueue.c:2296 kthread+0x33f/0x460 kernel/kthread.c:259 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415 -> #1 ((work_completion)(&dio->complete_work)){+.+.}: worker_thread+0x64c/0x1130 kernel/workqueue.c:2296 kthread+0x33f/0x460 kernel/kthread.c:259 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415 -> #0 ((wq_completion)"dio/%s"sb->s_id){+.+.}: flush_workqueue+0x117/0x13e0 kernel/workqueue.c:2661 drain_workqueue+0x1a5/0x460 kernel/workqueue.c:2826 destroy_workqueue+0x75/0x790 kernel/workqueue.c:4183 __alloc_workqueue_key+0xb76/0xed0 kernel/workqueue.c:4160 sb_init_dio_done_wq+0x34/0x90 fs/direct-io.c:623 do_blockdev_direct_IO fs/direct-io.c:1285 [inline] __blockdev_direct_IO+0x5f55/0xef40 fs/direct-io.c:1419 blockdev_direct_IO include/linux/fs.h:3059 [inline] fat_direct_IO+0x1d1/0x370 fs/fat/inode.c:282 generic_file_direct_write+0x208/0x4a0 mm/filemap.c:3073 __generic_file_write_iter+0x2d0/0x610 mm/filemap.c:3252 generic_file_write_iter+0x3f8/0x730 mm/filemap.c:3323 call_write_iter include/linux/fs.h:1821 [inline] aio_write+0x37f/0x5c0 fs/aio.c:1574 __io_submit_one fs/aio.c:1858 [inline] io_submit_one+0xecd/0x20c0 fs/aio.c:1909 __do_sys_io_submit fs/aio.c:1953 [inline] __se_sys_io_submit+0x11b/0x4a0 fs/aio.c:1924 do_syscall_64+0xf9/0x620 arch/x86/entry/common.c:293 entry_SYSCALL_64_after_hwframe+0x49/0xbe other info that might help us debug this: Chain exists of: (wq_completion)"dio/%s"sb->s_id --> (work_completion)(&dio->complete_work) --> &sb->s_type->i_mutex_key#24 Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&sb->s_type->i_mutex_key#24); lock((work_completion)(&dio->complete_work)); lock(&sb->s_type->i_mutex_key#24); lock((wq_completion)"dio/%s"sb->s_id); *** DEADLOCK *** 1 lock held by syz-executor.5/31849: #0: 000000007a2ae8f6 (&sb->s_type->i_mutex_key#24){++++}, at: inode_lock include/linux/fs.h:748 [inline] #0: 000000007a2ae8f6 (&sb->s_type->i_mutex_key#24){++++}, at: generic_file_write_iter+0x99/0x730 mm/filemap.c:3320 stack backtrace: CPU: 0 PID: 31849 Comm: syz-executor.5 Not tainted 4.19.211-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/26/2022 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x1fc/0x2ef lib/dump_stack.c:118 print_circular_bug.constprop.0.cold+0x2d7/0x41e kernel/locking/lockdep.c:1222 check_prev_add kernel/locking/lockdep.c:1866 [inline] check_prevs_add kernel/locking/lockdep.c:1979 [inline] validate_chain kernel/locking/lockdep.c:2420 [inline] __lock_acquire+0x30c9/0x3ff0 kernel/locking/lockdep.c:3416 lock_acquire+0x170/0x3c0 kernel/locking/lockdep.c:3908 flush_workqueue+0x117/0x13e0 kernel/workqueue.c:2661 drain_workqueue+0x1a5/0x460 kernel/workqueue.c:2826 destroy_workqueue+0x75/0x790 kernel/workqueue.c:4183 __alloc_workqueue_key+0xb76/0xed0 kernel/workqueue.c:4160 sb_init_dio_done_wq+0x34/0x90 fs/direct-io.c:623 do_blockdev_direct_IO fs/direct-io.c:1285 [inline] __blockdev_direct_IO+0x5f55/0xef40 fs/direct-io.c:1419 blockdev_direct_IO include/linux/fs.h:3059 [inline] fat_direct_IO+0x1d1/0x370 fs/fat/inode.c:282 generic_file_direct_write+0x208/0x4a0 mm/filemap.c:3073 __generic_file_write_iter+0x2d0/0x610 mm/filemap.c:3252 generic_file_write_iter+0x3f8/0x730 mm/filemap.c:3323 call_write_iter include/linux/fs.h:1821 [inline] aio_write+0x37f/0x5c0 fs/aio.c:1574 __io_submit_one fs/aio.c:1858 [inline] io_submit_one+0xecd/0x20c0 fs/aio.c:1909 __do_sys_io_submit fs/aio.c:1953 [inline] __se_sys_io_submit+0x11b/0x4a0 fs/aio.c:1924 do_syscall_64+0xf9/0x620 arch/x86/entry/common.c:293 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x7f9d35419409 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f9d33d6d168 EFLAGS: 00000246 ORIG_RAX: 00000000000000d1 RAX: ffffffffffffffda RBX: 00007f9d3552c050 RCX: 00007f9d35419409 RDX: 0000000020000540 RSI: 0000000000001801 RDI: 00007f9d35507000 RBP: 00007f9d35474367 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffca316110f R14: 00007f9d33d6d300 R15: 0000000000022000 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 Left network mode Left network mode Left network mode Left network mode IPVS: ftp: loaded support on port[0] = 21 Left network mode Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Left network mode Left network mode Left network mode Left network mode Left network mode Left network mode Left network mode Left network mode Left network mode Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Left network mode Left network mode Left network mode Left network mode Left network mode Left network mode Left network mode Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 Left network mode Left network mode Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 Left network mode IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 IPVS: ftp: loaded support on port[0] = 21 Started in network mode Own node identity 9, cluster identity 4711 32-bit node address hash set to 9