====================================================== WARNING: possible circular locking dependency detected syzkaller #0 Tainted: G L Y ------------------------------------------------------ syz-executor/5618 is trying to acquire lock: ffff888079d7a280 (&type->i_mutex_dir_key#4){++++}-{4:4}, at: inode_lock_shared include/linux/fs.h:1039 [inline] ffff888079d7a280 (&type->i_mutex_dir_key#4){++++}-{4:4}, at: lookup_slow+0x46/0x80 fs/namei.c:1935 but task is already holding lock: ffff888076c8db00 (DCACHE_PAR_LOOKUP){+.+.}-{0:0}, at: rcu_lock_acquire include/linux/rcupdate.h:309 [inline] ffff888076c8db00 (DCACHE_PAR_LOOKUP){+.+.}-{0:0}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] ffff888076c8db00 (DCACHE_PAR_LOOKUP){+.+.}-{0:0}, at: __d_alloc_parallel+0x39e/0x1700 fs/dcache.c:2883 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (DCACHE_PAR_LOOKUP){+.+.}-{0:0}: d_wait_lookup fs/dcache.c:2840 [inline] __d_alloc_parallel+0xc32/0x1700 fs/dcache.c:2944 __lookup_slow+0x82/0x2f0 fs/namei.c:1904 lookup_slow+0x59/0x80 fs/namei.c:1936 walk_component fs/namei.c:2329 [inline] lookup_last fs/namei.c:2836 [inline] path_lookupat+0x3f5/0x8c0 fs/namei.c:2860 filename_lookup+0x265/0x5d0 fs/namei.c:2889 do_readlinkat+0xe3/0x510 fs/stat.c:575 __do_sys_readlink fs/stat.c:609 [inline] __se_sys_readlink fs/stat.c:606 [inline] __x64_sys_readlink+0x7f/0x90 fs/stat.c:606 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline] do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> #0 (&type->i_mutex_dir_key#4){++++}-{4:4}: check_prev_add kernel/locking/lockdep.c:3209 [inline] check_prevs_add kernel/locking/lockdep.c:3328 [inline] validate_chain kernel/locking/lockdep.c:3952 [inline] __lock_acquire+0x164c/0x2de0 kernel/locking/lockdep.c:5288 lock_acquire+0x115/0x350 kernel/locking/lockdep.c:5942 down_read+0x45/0x320 kernel/locking/rwsem.c:1574 inode_lock_shared include/linux/fs.h:1039 [inline] lookup_slow+0x46/0x80 fs/namei.c:1935 ovl_lookup_positive_unlocked fs/overlayfs/namei.c:216 [inline] ovl_lookup_single+0x323/0xe90 fs/overlayfs/namei.c:260 ovl_lookup_layer+0x377/0x440 fs/overlayfs/namei.c:365 ovl_lookup_layers fs/overlayfs/namei.c:1168 [inline] ovl_lookup+0x9ae/0x1c80 fs/overlayfs/namei.c:1403 __lookup_slow+0x1fb/0x2f0 fs/namei.c:1919 lookup_slow+0x59/0x80 fs/namei.c:1936 walk_component fs/namei.c:2329 [inline] lookup_last fs/namei.c:2836 [inline] path_lookupat+0x3f5/0x8c0 fs/namei.c:2860 filename_lookup+0x265/0x5d0 fs/namei.c:2889 user_path_at+0x40/0x160 fs/namei.c:3688 ksys_umount fs/namespace.c:2127 [inline] __do_sys_umount fs/namespace.c:2135 [inline] __se_sys_umount fs/namespace.c:2133 [inline] __x64_sys_umount+0xf6/0x170 fs/namespace.c:2133 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline] do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84 entry_SYSCALL_64_after_hwframe+0x77/0x7f other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(DCACHE_PAR_LOOKUP); lock(&type->i_mutex_dir_key#4); lock(DCACHE_PAR_LOOKUP); rlock(&type->i_mutex_dir_key#4); *** DEADLOCK *** locks held by syz-executor/5618: 2, last CPU#0: #0: ffff8880677511c8 (&ovl_i_mutex_dir_key[depth]){++++}-{4:4}, at: inode_lock_shared include/linux/fs.h:1039 [inline] #0: ffff8880677511c8 (&ovl_i_mutex_dir_key[depth]){++++}-{4:4}, at: lookup_slow+0x46/0x80 fs/namei.c:1935 #1: ffff888076c8db00 (DCACHE_PAR_LOOKUP){+.+.}-{0:0}, at: rcu_lock_acquire include/linux/rcupdate.h:309 [inline] #1: ffff888076c8db00 (DCACHE_PAR_LOOKUP){+.+.}-{0:0}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #1: ffff888076c8db00 (DCACHE_PAR_LOOKUP){+.+.}-{0:0}, at: __d_alloc_parallel+0x39e/0x1700 fs/dcache.c:2883 stack backtrace: CPU: 0 UID: 0 PID: 5618 Comm: syz-executor Tainted: G L Y syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP, [Y]=FORCED_BIND Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/16/2026 Call Trace: dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120 print_circular_bug+0x2e2/0x300 kernel/locking/lockdep.c:2087 check_noncircular+0x12f/0x150 kernel/locking/lockdep.c:2219 check_prev_add kernel/locking/lockdep.c:3209 [inline] check_prevs_add kernel/locking/lockdep.c:3328 [inline] validate_chain kernel/locking/lockdep.c:3952 [inline] __lock_acquire+0x164c/0x2de0 kernel/locking/lockdep.c:5288 lock_acquire+0x115/0x350 kernel/locking/lockdep.c:5942 down_read+0x45/0x320 kernel/locking/rwsem.c:1574 inode_lock_shared include/linux/fs.h:1039 [inline] lookup_slow+0x46/0x80 fs/namei.c:1935 ovl_lookup_positive_unlocked fs/overlayfs/namei.c:216 [inline] ovl_lookup_single+0x323/0xe90 fs/overlayfs/namei.c:260 ovl_lookup_layer+0x377/0x440 fs/overlayfs/namei.c:365 ovl_lookup_layers fs/overlayfs/namei.c:1168 [inline] ovl_lookup+0x9ae/0x1c80 fs/overlayfs/namei.c:1403 __lookup_slow+0x1fb/0x2f0 fs/namei.c:1919 lookup_slow+0x59/0x80 fs/namei.c:1936 walk_component fs/namei.c:2329 [inline] lookup_last fs/namei.c:2836 [inline] path_lookupat+0x3f5/0x8c0 fs/namei.c:2860 filename_lookup+0x265/0x5d0 fs/namei.c:2889 user_path_at+0x40/0x160 fs/namei.c:3688 ksys_umount fs/namespace.c:2127 [inline] __do_sys_umount fs/namespace.c:2135 [inline] __se_sys_umount fs/namespace.c:2133 [inline] __x64_sys_umount+0xf6/0x170 fs/namespace.c:2133 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline] do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f748159f797 Code: a2 c7 05 5c 6f 25 00 00 00 00 00 eb 96 e8 e1 12 00 00 90 31 f6 e9 09 00 00 00 66 0f 1f 84 00 00 00 00 00 b8 a6 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 01 c3 48 c7 c2 e8 ff ff ff f7 d8 64 89 02 b8 RSP: 002b:00007fff3491ce38 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6 RAX: ffffffffffffffda RBX: 00007f7481634cf3 RCX: 00007f748159f797 RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007fff3491cef0 RBP: 00007fff3491cef0 R08: 00007fff3491def0 R09: 00000000ffffffff R10: 0000000000000000 R11: 0000000000000246 R12: 00007fff3491dfe0 R13: 00007f7481634cf3 R14: 00000000000ac39d R15: 00007fff3491f0b0