====================================================== WARNING: possible circular locking dependency detected 6.2.0-rc8-syzkaller-00151-g925cf0457d7e #0 Not tainted ------------------------------------------------------ kthreadd/2 is trying to acquire lock: ffff888024cf9090 (&sbi->lock){+.+.}-{3:3}, at: reiserfs_write_lock+0x79/0x100 fs/reiserfs/lock.c:27 but task is already holding lock: ffffffff8c8e19e0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim mm/page_alloc.c:4747 [inline] ffffffff8c8e19e0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim mm/page_alloc.c:4772 [inline] ffffffff8c8e19e0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x808/0x23d0 mm/page_alloc.c:5178 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (fs_reclaim){+.+.}-{0:0}: __fs_reclaim_acquire mm/page_alloc.c:4674 [inline] fs_reclaim_acquire+0x11d/0x160 mm/page_alloc.c:4688 might_alloc include/linux/sched/mm.h:271 [inline] slab_pre_alloc_hook mm/slab.h:720 [inline] slab_alloc_node mm/slub.c:3434 [inline] slab_alloc mm/slub.c:3460 [inline] __kmem_cache_alloc_lru mm/slub.c:3467 [inline] kmem_cache_alloc_lru+0x48/0x760 mm/slub.c:3483 __d_alloc+0x32/0x980 fs/dcache.c:1769 d_alloc_anon fs/dcache.c:1868 [inline] d_make_root+0x49/0x110 fs/dcache.c:2069 reiserfs_fill_super+0x12eb/0x2e90 fs/reiserfs/super.c:2083 mount_bdev+0x351/0x410 fs/super.c:1359 legacy_get_tree+0x109/0x220 fs/fs_context.c:610 vfs_get_tree+0x8d/0x2f0 fs/super.c:1489 do_new_mount fs/namespace.c:3145 [inline] path_mount+0x132a/0x1e20 fs/namespace.c:3475 do_mount fs/namespace.c:3488 [inline] __do_sys_mount fs/namespace.c:3697 [inline] __se_sys_mount fs/namespace.c:3674 [inline] __ia32_sys_mount+0x282/0x300 fs/namespace.c:3674 do_syscall_32_irqs_on arch/x86/entry/common.c:112 [inline] __do_fast_syscall_32+0x65/0xf0 arch/x86/entry/common.c:178 do_fast_syscall_32+0x33/0x70 arch/x86/entry/common.c:203 entry_SYSENTER_compat_after_hwframe+0x70/0x82 -> #0 (&sbi->lock){+.+.}-{3:3}: check_prev_add kernel/locking/lockdep.c:3097 [inline] check_prevs_add kernel/locking/lockdep.c:3216 [inline] validate_chain kernel/locking/lockdep.c:3831 [inline] __lock_acquire+0x2a43/0x56d0 kernel/locking/lockdep.c:5055 lock_acquire kernel/locking/lockdep.c:5668 [inline] lock_acquire+0x1e3/0x630 kernel/locking/lockdep.c:5633 __mutex_lock_common kernel/locking/mutex.c:603 [inline] __mutex_lock+0x12f/0x1360 kernel/locking/mutex.c:747 reiserfs_write_lock+0x79/0x100 fs/reiserfs/lock.c:27 reiserfs_evict_inode+0x30b/0x540 fs/reiserfs/inode.c:55 evict+0x2ed/0x6b0 fs/inode.c:664 iput_final fs/inode.c:1747 [inline] iput.part.0+0x59b/0x880 fs/inode.c:1773 iput+0x5c/0x80 fs/inode.c:1763 dentry_unlink_inode+0x2b1/0x460 fs/dcache.c:401 __dentry_kill+0x3c0/0x640 fs/dcache.c:607 shrink_dentry_list+0x240/0x800 fs/dcache.c:1201 prune_dcache_sb+0xeb/0x150 fs/dcache.c:1282 super_cache_scan+0x33a/0x590 fs/super.c:104 do_shrink_slab+0x464/0xce0 mm/vmscan.c:847 shrink_slab_memcg mm/vmscan.c:916 [inline] shrink_slab+0x388/0x660 mm/vmscan.c:995 shrink_node_memcgs mm/vmscan.c:6147 [inline] shrink_node+0x6a9/0x1f00 mm/vmscan.c:6176 shrink_zones mm/vmscan.c:6414 [inline] do_try_to_free_pages+0x3c8/0x17d0 mm/vmscan.c:6476 try_to_free_pages+0x2de/0x960 mm/vmscan.c:6711 __perform_reclaim mm/page_alloc.c:4750 [inline] __alloc_pages_direct_reclaim mm/page_alloc.c:4772 [inline] __alloc_pages_slowpath.constprop.0+0x8b6/0x23d0 mm/page_alloc.c:5178 __alloc_pages+0x4aa/0x5b0 mm/page_alloc.c:5562 alloc_pages+0x1aa/0x270 mm/mempolicy.c:2287 __get_free_pages+0xc/0x40 mm/page_alloc.c:5599 kasan_populate_vmalloc_pte mm/kasan/shadow.c:271 [inline] kasan_populate_vmalloc_pte+0x27/0x150 mm/kasan/shadow.c:262 apply_to_pte_range mm/memory.c:2596 [inline] apply_to_pmd_range mm/memory.c:2640 [inline] apply_to_pud_range mm/memory.c:2676 [inline] apply_to_p4d_range mm/memory.c:2712 [inline] __apply_to_page_range+0x68c/0x1030 mm/memory.c:2746 alloc_vmap_area+0x512/0x1ed0 mm/vmalloc.c:1647 __get_vm_area_node+0x142/0x3f0 mm/vmalloc.c:2515 __vmalloc_node_range+0x25b/0x13c0 mm/vmalloc.c:3187 alloc_thread_stack_node kernel/fork.c:311 [inline] dup_task_struct kernel/fork.c:987 [inline] copy_process+0x12de/0x7530 kernel/fork.c:2097 kernel_clone+0xeb/0x9f0 kernel/fork.c:2681 kernel_thread+0xb9/0xf0 kernel/fork.c:2741 create_kthread kernel/kthread.c:399 [inline] kthreadd+0x4f2/0x750 kernel/kthread.c:746 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(fs_reclaim); lock(&sbi->lock); lock(fs_reclaim); lock(&sbi->lock); *** DEADLOCK *** 3 locks held by kthreadd/2: #0: ffffffff8c8e19e0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim mm/page_alloc.c:4747 [inline] #0: ffffffff8c8e19e0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim mm/page_alloc.c:4772 [inline] #0: ffffffff8c8e19e0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x808/0x23d0 mm/page_alloc.c:5178 #1: ffffffff8c898db0 (shrinker_rwsem){++++}-{3:3}, at: shrink_slab_memcg mm/vmscan.c:889 [inline] #1: ffffffff8c898db0 (shrinker_rwsem){++++}-{3:3}, at: shrink_slab+0x2a0/0x660 mm/vmscan.c:995 #2: ffff88804bb860e0 (&type->s_umount_key#67){.+.+}-{3:3}, at: trylock_super fs/super.c:415 [inline] #2: ffff88804bb860e0 (&type->s_umount_key#67){.+.+}-{3:3}, at: super_cache_scan+0x70/0x590 fs/super.c:79 stack backtrace: CPU: 2 PID: 2 Comm: kthreadd Not tainted 6.2.0-rc8-syzkaller-00151-g925cf0457d7e #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xd1/0x138 lib/dump_stack.c:106 check_noncircular+0x25f/0x2e0 kernel/locking/lockdep.c:2177 check_prev_add kernel/locking/lockdep.c:3097 [inline] check_prevs_add kernel/locking/lockdep.c:3216 [inline] validate_chain kernel/locking/lockdep.c:3831 [inline] __lock_acquire+0x2a43/0x56d0 kernel/locking/lockdep.c:5055 lock_acquire kernel/locking/lockdep.c:5668 [inline] lock_acquire+0x1e3/0x630 kernel/locking/lockdep.c:5633 __mutex_lock_common kernel/locking/mutex.c:603 [inline] __mutex_lock+0x12f/0x1360 kernel/locking/mutex.c:747 reiserfs_write_lock+0x79/0x100 fs/reiserfs/lock.c:27 reiserfs_evict_inode+0x30b/0x540 fs/reiserfs/inode.c:55 evict+0x2ed/0x6b0 fs/inode.c:664 iput_final fs/inode.c:1747 [inline] iput.part.0+0x59b/0x880 fs/inode.c:1773 iput+0x5c/0x80 fs/inode.c:1763 dentry_unlink_inode+0x2b1/0x460 fs/dcache.c:401 __dentry_kill+0x3c0/0x640 fs/dcache.c:607 shrink_dentry_list+0x240/0x800 fs/dcache.c:1201 prune_dcache_sb+0xeb/0x150 fs/dcache.c:1282 super_cache_scan+0x33a/0x590 fs/super.c:104 do_shrink_slab+0x464/0xce0 mm/vmscan.c:847 shrink_slab_memcg mm/vmscan.c:916 [inline] shrink_slab+0x388/0x660 mm/vmscan.c:995 shrink_node_memcgs mm/vmscan.c:6147 [inline] shrink_node+0x6a9/0x1f00 mm/vmscan.c:6176 shrink_zones mm/vmscan.c:6414 [inline] do_try_to_free_pages+0x3c8/0x17d0 mm/vmscan.c:6476 try_to_free_pages+0x2de/0x960 mm/vmscan.c:6711 __perform_reclaim mm/page_alloc.c:4750 [inline] __alloc_pages_direct_reclaim mm/page_alloc.c:4772 [inline] __alloc_pages_slowpath.constprop.0+0x8b6/0x23d0 mm/page_alloc.c:5178 __alloc_pages+0x4aa/0x5b0 mm/page_alloc.c:5562 alloc_pages+0x1aa/0x270 mm/mempolicy.c:2287 __get_free_pages+0xc/0x40 mm/page_alloc.c:5599 kasan_populate_vmalloc_pte mm/kasan/shadow.c:271 [inline] kasan_populate_vmalloc_pte+0x27/0x150 mm/kasan/shadow.c:262 apply_to_pte_range mm/memory.c:2596 [inline] apply_to_pmd_range mm/memory.c:2640 [inline] apply_to_pud_range mm/memory.c:2676 [inline] apply_to_p4d_range mm/memory.c:2712 [inline] __apply_to_page_range+0x68c/0x1030 mm/memory.c:2746 alloc_vmap_area+0x512/0x1ed0 mm/vmalloc.c:1647 __get_vm_area_node+0x142/0x3f0 mm/vmalloc.c:2515 __vmalloc_node_range+0x25b/0x13c0 mm/vmalloc.c:3187 alloc_thread_stack_node kernel/fork.c:311 [inline] dup_task_struct kernel/fork.c:987 [inline] copy_process+0x12de/0x7530 kernel/fork.c:2097 kernel_clone+0xeb/0x9f0 kernel/fork.c:2681 kernel_thread+0xb9/0xf0 kernel/fork.c:2741 create_kthread kernel/kthread.c:399 [inline] kthreadd+0x4f2/0x750 kernel/kthread.c:746 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308