============================================ WARNING: possible recursive locking detected 6.16.0-rc5-syzkaller-00038-g733923397fd9 #0 Not tainted -------------------------------------------- syz.0.0/5350 is trying to acquire lock: ffff888040839928 (&sbi->s_alloc_mutex){+.+.}-{4:4}, at: udf_table_free_blocks fs/udf/balloc.c:375 [inline] ffff888040839928 (&sbi->s_alloc_mutex){+.+.}-{4:4}, at: udf_free_blocks+0x9e2/0x17f0 fs/udf/balloc.c:677 but task is already holding lock: ffff888040839928 (&sbi->s_alloc_mutex){+.+.}-{4:4}, at: udf_table_prealloc_blocks fs/udf/balloc.c:516 [inline] ffff888040839928 (&sbi->s_alloc_mutex){+.+.}-{4:4}, at: udf_prealloc_blocks+0x8d0/0x10b0 fs/udf/balloc.c:701 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&sbi->s_alloc_mutex); lock(&sbi->s_alloc_mutex); *** DEADLOCK *** May be due to missing lock nesting notation 4 locks held by syz.0.0/5350: #0: ffff888033574428 (sb_writers#12){.+.+}-{0:0}, at: do_coredump+0x27cb/0x3440 fs/coredump.c:949 #1: ffff888053006280 (&sb->s_type->i_mutex_key#20){+.+.}-{4:4}, at: inode_lock include/linux/fs.h:869 [inline] #1: ffff888053006280 (&sb->s_type->i_mutex_key#20){+.+.}-{4:4}, at: udf_file_write_iter+0x6e/0x6c0 fs/udf/file.c:95 #2: ffff8880530060b0 (&ei->i_data_sem#2){++++}-{4:4}, at: udf_map_block+0x291/0x42a0 fs/udf/inode.c:439 #3: ffff888040839928 (&sbi->s_alloc_mutex){+.+.}-{4:4}, at: udf_table_prealloc_blocks fs/udf/balloc.c:516 [inline] #3: ffff888040839928 (&sbi->s_alloc_mutex){+.+.}-{4:4}, at: udf_prealloc_blocks+0x8d0/0x10b0 fs/udf/balloc.c:701 stack backtrace: CPU: 0 UID: 0 PID: 5350 Comm: syz.0.0 Not tainted 6.16.0-rc5-syzkaller-00038-g733923397fd9 #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 Call Trace: dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120 print_deadlock_bug+0x28b/0x2a0 kernel/locking/lockdep.c:3044 check_deadlock kernel/locking/lockdep.c:3096 [inline] validate_chain+0x1a3f/0x2140 kernel/locking/lockdep.c:3898 __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5240 lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5871 __mutex_lock_common kernel/locking/mutex.c:602 [inline] __mutex_lock+0x182/0xe80 kernel/locking/mutex.c:747 udf_table_free_blocks fs/udf/balloc.c:375 [inline] udf_free_blocks+0x9e2/0x17f0 fs/udf/balloc.c:677 udf_delete_aext+0x4df/0xbc0 fs/udf/inode.c:2373 udf_table_prealloc_blocks fs/udf/balloc.c:543 [inline] udf_prealloc_blocks+0xb7e/0x10b0 fs/udf/balloc.c:701 udf_prealloc_extents fs/udf/inode.c:1053 [inline] inode_getblk fs/udf/inode.c:911 [inline] udf_map_block+0x1ddd/0x42a0 fs/udf/inode.c:447 __udf_get_block+0x52/0x250 fs/udf/inode.c:461 __block_write_begin_int+0x6b5/0x1900 fs/buffer.c:2151 block_write_begin+0x8a/0x120 fs/buffer.c:2262 udf_write_begin+0x100/0x260 fs/udf/inode.c:256 generic_perform_write+0x2c7/0x910 mm/filemap.c:4112 udf_file_write_iter+0x2d5/0x6c0 fs/udf/file.c:111 __kernel_write_iter+0x390/0x860 fs/read_write.c:619 dump_emit_page fs/coredump.c:1112 [inline] dump_user_range+0x873/0xc70 fs/coredump.c:1186 elf_core_dump+0x32ed/0x3900 fs/binfmt_elf.c:2075 do_coredump+0x2806/0x3440 fs/coredump.c:950 get_signal+0x1109/0x1340 kernel/signal.c:3019 arch_do_signal_or_restart+0x9a/0x750 arch/x86/kernel/signal.c:337 exit_to_user_mode_loop kernel/entry/common.c:111 [inline] exit_to_user_mode_prepare include/linux/entry-common.h:330 [inline] irqentry_exit_to_user_mode+0x81/0x120 kernel/entry/common.c:184 exc_page_fault+0x9f/0xf0 arch/x86/mm/fault.c:1535 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623 RIP: 0033:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. RSP: 002b:0000200000000068 EFLAGS: 00010217 RAX: 0000000000000000 RBX: 00007f5180fb6160 RCX: 00007f5180d8e929 RDX: 00002000000000c0 RSI: 0000200000000060 RDI: 0000000008000000 RBP: 00007f5180e10b39 R08: 0000200000000140 R09: 0000200000000140 R10: 0000200000000100 R11: 0000000000000206 R12: 0000000000000000 R13: 0000000000000000 R14: 00007f5180fb6160 R15: 00007ffcbc63e098