ntfs3: loop0: ino=5, directory corrupted ============================================ WARNING: possible recursive locking detected 6.1.110-syzkaller #0 Not tainted -------------------------------------------- kworker/u4:7/3699 is trying to acquire lock: ffff888056afad40 (&ni->ni_lock){+.+.}-{3:3}, at: ntfs_set_state+0x1fa/0x660 fs/ntfs3/fsntfs.c:920 but task is already holding lock: ffff888056b4c360 (&ni->ni_lock){+.+.}-{3:3}, at: ni_trylock fs/ntfs3/ntfs_fs.h:1116 [inline] ffff888056b4c360 (&ni->ni_lock){+.+.}-{3:3}, at: ni_write_inode+0x16b/0x1070 fs/ntfs3/frecord.c:3323 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&ni->ni_lock); lock(&ni->ni_lock); *** DEADLOCK *** May be due to missing lock nesting notation 4 locks held by kworker/u4:7/3699: #0: ffff88801ba9a138 ((wq_completion)writeback){+.+.}-{0:0}, at: process_one_work+0x7a9/0x11d0 kernel/workqueue.c:2267 #1: ffffc900045afd20 ((work_completion)(&(&wb->dwork)->work)){+.+.}-{0:0}, at: process_one_work+0x7a9/0x11d0 kernel/workqueue.c:2267 #2: ffff888056b4c360 (&ni->ni_lock){+.+.}-{3:3}, at: ni_trylock fs/ntfs3/ntfs_fs.h:1116 [inline] #2: ffff888056b4c360 (&ni->ni_lock){+.+.}-{3:3}, at: ni_write_inode+0x16b/0x1070 fs/ntfs3/frecord.c:3323 #3: ffff888056af9e80 (&ni->ni_lock){+.+.}-{3:3}, at: ni_trylock fs/ntfs3/ntfs_fs.h:1116 [inline] #3: ffff888056af9e80 (&ni->ni_lock){+.+.}-{3:3}, at: ni_update_parent+0x9ce/0xdc0 fs/ntfs3/frecord.c:3291 stack backtrace: CPU: 1 PID: 3699 Comm: kworker/u4:7 Not tainted 6.1.110-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/06/2024 Workqueue: writeback wb_workfn (flush-7:0) Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1e3/0x2cb lib/dump_stack.c:106 print_deadlock_bug kernel/locking/lockdep.c:2983 [inline] check_deadlock kernel/locking/lockdep.c:3026 [inline] validate_chain+0x4711/0x5950 kernel/locking/lockdep.c:3812 __lock_acquire+0x125b/0x1f80 kernel/locking/lockdep.c:5049 lock_acquire+0x1f8/0x5a0 kernel/locking/lockdep.c:5662 __mutex_lock_common kernel/locking/mutex.c:603 [inline] __mutex_lock+0x132/0xd80 kernel/locking/mutex.c:747 ntfs_set_state+0x1fa/0x660 fs/ntfs3/fsntfs.c:920 indx_read+0x5a3/0xc40 indx_find+0x467/0xb60 fs/ntfs3/index.c:1181 indx_update_dup+0x476/0x850 fs/ntfs3/index.c:2644 ni_update_parent+0xa14/0xdc0 fs/ntfs3/frecord.c:3294 ni_write_inode+0xe34/0x1070 fs/ntfs3/frecord.c:3377 write_inode fs/fs-writeback.c:1460 [inline] __writeback_single_inode+0x67d/0x11e0 fs/fs-writeback.c:1677 writeback_sb_inodes+0xc2b/0x1b20 fs/fs-writeback.c:1903 wb_writeback+0x49d/0xe10 fs/fs-writeback.c:2077 wb_do_writeback fs/fs-writeback.c:2220 [inline] wb_workfn+0x427/0x1020 fs/fs-writeback.c:2260 process_one_work+0x8a9/0x11d0 kernel/workqueue.c:2292 worker_thread+0xa47/0x1200 kernel/workqueue.c:2439 kthread+0x28d/0x320 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 ntfs3: loop0: Mark volume as dirty due to NTFS errors