====================================================== WARNING: possible circular locking dependency detected 6.13.0-rc4-syzkaller-00012-g9b2ffa6148b1 #0 Not tainted ------------------------------------------------------ btrfs-cleaner/6633 is trying to acquire lock: ffff8880303a2860 (&delayed_node->mutex){+.+.}-{4:4}, at: __btrfs_release_delayed_node+0xa5/0xaf0 fs/btrfs/delayed-inode.c:268 but task is already holding lock: ffff888033107958 (btrfs-tree-00){++++}-{4:4}, at: btrfs_tree_read_lock_nested+0x2f/0x250 fs/btrfs/locking.c:146 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (btrfs-tree-00){++++}-{4:4}: reacquire_held_locks+0x3eb/0x690 kernel/locking/lockdep.c:5374 __lock_release kernel/locking/lockdep.c:5563 [inline] lock_release+0x396/0xa30 kernel/locking/lockdep.c:5870 up_read+0x16/0x20 kernel/locking/rwsem.c:1619 btrfs_tree_unlock_rw fs/btrfs/locking.h:213 [inline] btrfs_search_slot+0xd85/0x3180 fs/btrfs/ctree.c:2183 btrfs_lookup_inode+0xdc/0x480 fs/btrfs/inode-item.c:411 __btrfs_update_delayed_inode+0x1e7/0xb90 fs/btrfs/delayed-inode.c:1030 btrfs_update_delayed_inode fs/btrfs/delayed-inode.c:1114 [inline] __btrfs_commit_inode_delayed_items+0x2318/0x24a0 fs/btrfs/delayed-inode.c:1137 __btrfs_run_delayed_items+0x213/0x490 fs/btrfs/delayed-inode.c:1171 btrfs_commit_transaction+0x8a0/0x3720 fs/btrfs/transaction.c:2311 sync_filesystem+0x1ca/0x230 fs/sync.c:66 generic_shutdown_super+0x72/0x2d0 fs/super.c:621 kill_anon_super+0x3b/0x70 fs/super.c:1237 btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2100 deactivate_locked_super+0xc6/0x130 fs/super.c:473 cleanup_mnt+0x41f/0x4b0 fs/namespace.c:1373 task_work_run+0x251/0x310 kernel/task_work.c:239 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline] exit_to_user_mode_loop kernel/entry/common.c:114 [inline] exit_to_user_mode_prepare include/linux/entry-common.h:329 [inline] __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline] syscall_exit_to_user_mode+0x13f/0x340 kernel/entry/common.c:218 do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> #0 (&delayed_node->mutex){+.+.}-{4:4}: check_prev_add kernel/locking/lockdep.c:3161 [inline] check_prevs_add kernel/locking/lockdep.c:3280 [inline] validate_chain+0x18ef/0x5920 kernel/locking/lockdep.c:3904 __lock_acquire+0x1397/0x2100 kernel/locking/lockdep.c:5226 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849 __mutex_lock_common kernel/locking/mutex.c:585 [inline] __mutex_lock+0x1ac/0xee0 kernel/locking/mutex.c:735 __btrfs_release_delayed_node+0xa5/0xaf0 fs/btrfs/delayed-inode.c:268 btrfs_evict_inode+0x752/0x1080 fs/btrfs/inode.c:5384 evict+0x4ea/0x9a0 fs/inode.c:796 btrfs_read_locked_inode+0x1027/0x1570 fs/btrfs/inode.c:4006 btrfs_iget+0x1ca/0x2b0 fs/btrfs/inode.c:5622 btrfs_run_defrag_inode fs/btrfs/defrag.c:246 [inline] btrfs_run_defrag_inodes+0x6bb/0xe40 fs/btrfs/defrag.c:318 cleaner_kthread+0x28c/0x3d0 fs/btrfs/disk-io.c:1525 kthread+0x2f2/0x390 kernel/kthread.c:389 ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- rlock(btrfs-tree-00); lock(&delayed_node->mutex); lock(btrfs-tree-00); lock(&delayed_node->mutex); *** DEADLOCK *** 1 lock held by btrfs-cleaner/6633: #0: ffff888033107958 (btrfs-tree-00){++++}-{4:4}, at: btrfs_tree_read_lock_nested+0x2f/0x250 fs/btrfs/locking.c:146 stack backtrace: CPU: 0 UID: 0 PID: 6633 Comm: btrfs-cleaner Not tainted 6.13.0-rc4-syzkaller-00012-g9b2ffa6148b1 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 print_circular_bug+0x13a/0x1b0 kernel/locking/lockdep.c:2074 check_noncircular+0x36a/0x4a0 kernel/locking/lockdep.c:2206 check_prev_add kernel/locking/lockdep.c:3161 [inline] check_prevs_add kernel/locking/lockdep.c:3280 [inline] validate_chain+0x18ef/0x5920 kernel/locking/lockdep.c:3904 __lock_acquire+0x1397/0x2100 kernel/locking/lockdep.c:5226 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849 __mutex_lock_common kernel/locking/mutex.c:585 [inline] __mutex_lock+0x1ac/0xee0 kernel/locking/mutex.c:735 __btrfs_release_delayed_node+0xa5/0xaf0 fs/btrfs/delayed-inode.c:268 btrfs_evict_inode+0x752/0x1080 fs/btrfs/inode.c:5384 evict+0x4ea/0x9a0 fs/inode.c:796 btrfs_read_locked_inode+0x1027/0x1570 fs/btrfs/inode.c:4006 btrfs_iget+0x1ca/0x2b0 fs/btrfs/inode.c:5622 btrfs_run_defrag_inode fs/btrfs/defrag.c:246 [inline] btrfs_run_defrag_inodes+0x6bb/0xe40 fs/btrfs/defrag.c:318 cleaner_kthread+0x28c/0x3d0 fs/btrfs/disk-io.c:1525 kthread+0x2f2/0x390 kernel/kthread.c:389 ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244