====================================================== WARNING: possible circular locking dependency detected 6.10.0-rc7-syzkaller-00254-g528dd46d0fc3 #0 Not tainted ------------------------------------------------------ syz.3.356/8608 is trying to acquire lock: ffff88805f106840 (&ni->ni_lock/4){+.+.}-{3:3}, at: ni_lock fs/ntfs3/ntfs_fs.h:1123 [inline] ffff88805f106840 (&ni->ni_lock/4){+.+.}-{3:3}, at: ntfs_read_folio+0xc0/0x210 fs/ntfs3/inode.c:720 but task is already holding lock: ffff88805f106c80 (mapping.invalidate_lock#13){.+.+}-{3:3}, at: filemap_invalidate_lock_shared include/linux/fs.h:846 [inline] ffff88805f106c80 (mapping.invalidate_lock#13){.+.+}-{3:3}, at: filemap_fault+0xb5b/0x1760 mm/filemap.c:3321 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #3 (mapping.invalidate_lock#13){.+.+}-{3:3}: lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754 down_read+0xb1/0xa40 kernel/locking/rwsem.c:1526 filemap_invalidate_lock_shared include/linux/fs.h:846 [inline] filemap_fault+0x658/0x1760 mm/filemap.c:3302 __do_fault+0x135/0x460 mm/memory.c:4556 do_shared_fault mm/memory.c:4981 [inline] do_fault mm/memory.c:5055 [inline] do_pte_missing mm/memory.c:3897 [inline] handle_pte_fault+0x119b/0x7090 mm/memory.c:5381 __handle_mm_fault mm/memory.c:5524 [inline] handle_mm_fault+0xfb0/0x19d0 mm/memory.c:5689 do_user_addr_fault arch/x86/mm/fault.c:1338 [inline] handle_page_fault arch/x86/mm/fault.c:1481 [inline] exc_page_fault+0x459/0x8c0 arch/x86/mm/fault.c:1539 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623 -> #2 (&vma->vm_lock->lock){++++}-{3:3}: lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754 down_write+0x3a/0x50 kernel/locking/rwsem.c:1579 vma_start_write include/linux/mm.h:736 [inline] vma_link+0x270/0x4f0 mm/mmap.c:416 insert_vm_struct+0x2f7/0x410 mm/mmap.c:3413 __bprm_mm_init fs/exec.c:291 [inline] bprm_mm_init fs/exec.c:395 [inline] alloc_bprm+0x5ac/0xa40 fs/exec.c:1599 kernel_execve+0x99/0xa10 fs/exec.c:2023 try_to_run_init_process init/main.c:1395 [inline] kernel_init+0xed/0x2b0 init/main.c:1523 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 -> #1 (&mm->mmap_lock){++++}-{3:3}: lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754 __might_fault+0xc6/0x120 mm/memory.c:6234 _copy_to_user+0x2a/0xb0 lib/usercopy.c:41 copy_to_user include/linux/uaccess.h:191 [inline] fiemap_fill_next_extent+0x235/0x410 fs/ioctl.c:145 ni_fiemap+0x100b/0x1230 fs/ntfs3/frecord.c:1948 ntfs_fiemap+0x132/0x180 fs/ntfs3/file.c:1215 ioctl_fiemap fs/ioctl.c:220 [inline] do_vfs_ioctl+0x1c07/0x2e50 fs/ioctl.c:841 __do_sys_ioctl fs/ioctl.c:905 [inline] __se_sys_ioctl+0x81/0x170 fs/ioctl.c:893 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> #0 (&ni->ni_lock/4){+.+.}-{3:3}: check_prev_add kernel/locking/lockdep.c:3134 [inline] check_prevs_add kernel/locking/lockdep.c:3253 [inline] validate_chain+0x18e0/0x5900 kernel/locking/lockdep.c:3869 __lock_acquire+0x1346/0x1fd0 kernel/locking/lockdep.c:5137 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754 __mutex_lock_common kernel/locking/mutex.c:608 [inline] __mutex_lock+0x136/0xd70 kernel/locking/mutex.c:752 ni_lock fs/ntfs3/ntfs_fs.h:1123 [inline] ntfs_read_folio+0xc0/0x210 fs/ntfs3/inode.c:720 filemap_read_folio+0x1a0/0x790 mm/filemap.c:2355 filemap_fault+0xf69/0x1760 mm/filemap.c:3406 __do_fault+0x135/0x460 mm/memory.c:4556 do_shared_fault mm/memory.c:4981 [inline] do_fault mm/memory.c:5055 [inline] do_pte_missing mm/memory.c:3897 [inline] handle_pte_fault+0x119b/0x7090 mm/memory.c:5381 __handle_mm_fault mm/memory.c:5524 [inline] handle_mm_fault+0xfb0/0x19d0 mm/memory.c:5689 do_user_addr_fault arch/x86/mm/fault.c:1338 [inline] handle_page_fault arch/x86/mm/fault.c:1481 [inline] exc_page_fault+0x459/0x8c0 arch/x86/mm/fault.c:1539 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623 other info that might help us debug this: Chain exists of: &ni->ni_lock/4 --> &vma->vm_lock->lock --> mapping.invalidate_lock#13 Possible unsafe locking scenario: CPU0 CPU1 ---- ---- rlock(mapping.invalidate_lock#13); lock(&vma->vm_lock->lock); lock(mapping.invalidate_lock#13); lock(&ni->ni_lock/4); *** DEADLOCK *** 1 lock held by syz.3.356/8608: #0: ffff88805f106c80 (mapping.invalidate_lock#13){.+.+}-{3:3}, at: filemap_invalidate_lock_shared include/linux/fs.h:846 [inline] #0: ffff88805f106c80 (mapping.invalidate_lock#13){.+.+}-{3:3}, at: filemap_fault+0xb5b/0x1760 mm/filemap.c:3321 stack backtrace: CPU: 0 PID: 8608 Comm: syz.3.356 Not tainted 6.10.0-rc7-syzkaller-00254-g528dd46d0fc3 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/07/2024 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114 check_noncircular+0x36a/0x4a0 kernel/locking/lockdep.c:2187 check_prev_add kernel/locking/lockdep.c:3134 [inline] check_prevs_add kernel/locking/lockdep.c:3253 [inline] validate_chain+0x18e0/0x5900 kernel/locking/lockdep.c:3869 __lock_acquire+0x1346/0x1fd0 kernel/locking/lockdep.c:5137 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754 __mutex_lock_common kernel/locking/mutex.c:608 [inline] __mutex_lock+0x136/0xd70 kernel/locking/mutex.c:752 ni_lock fs/ntfs3/ntfs_fs.h:1123 [inline] ntfs_read_folio+0xc0/0x210 fs/ntfs3/inode.c:720 filemap_read_folio+0x1a0/0x790 mm/filemap.c:2355 filemap_fault+0xf69/0x1760 mm/filemap.c:3406 __do_fault+0x135/0x460 mm/memory.c:4556 do_shared_fault mm/memory.c:4981 [inline] do_fault mm/memory.c:5055 [inline] do_pte_missing mm/memory.c:3897 [inline] handle_pte_fault+0x119b/0x7090 mm/memory.c:5381 __handle_mm_fault mm/memory.c:5524 [inline] handle_mm_fault+0xfb0/0x19d0 mm/memory.c:5689 do_user_addr_fault arch/x86/mm/fault.c:1338 [inline] handle_page_fault arch/x86/mm/fault.c:1481 [inline] exc_page_fault+0x459/0x8c0 arch/x86/mm/fault.c:1539 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623 RIP: 0033:0x7f8114b3d718 Code: fc 89 37 c3 c5 fa 6f 06 c5 fa 6f 4c 16 f0 c5 fa 7f 07 c5 fa 7f 4c 17 f0 c3 66 0f 1f 84 00 00 00 00 00 48 8b 4c 16 f8 48 8b 36 <48> 89 37 48 89 4c 17 f8 c3 c5 fe 6f 54 16 e0 c5 fe 6f 5c 16 c0 c5 RSP: 002b:00007ffd16f72228 EFLAGS: 00010246 RAX: 00000000200003c0 RBX: 0000000000000004 RCX: 0030656c69662f2e RDX: 0000000000000008 RSI: 0030656c69662f2e RDI: 00000000200003c0 RBP: fffffffffffffffe R08: 00007f8114a00000 R09: 0000000000000001 R10: 0000000000000001 R11: 0000000000000009 R12: 00007f8114d03f6c R13: 0000000000000032 R14: 00007f8114d05a60 R15: 00007f8114d03f60