program: syz_mount_image$hfsplus(&(0x7f0000000000), &(0x7f0000000480)='./file1\x00', 0x1008400, &(0x7f0000000080)=ANY=[], 0x85, 0x67b, &(0x7f0000001240)="$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") r0 = openat(0xffffffffffffff9c, &(0x7f0000000240)='./file1\x00', 0x4842, 0x1cb) writev(r0, &(0x7f0000000140)=[{&(0x7f0000001200)="10", 0x64000}], 0x1) madvise(&(0x7f0000000000/0x600000)=nil, 0xffffffffffffffff, 0x67) r1 = socket$inet6(0x10, 0x3, 0x0) write(r1, &(0x7f0000000040)="2400000021002551241c0165ff00fc020a000060ff100f000ee1000c08000b0000000000", 0x24) open(&(0x7f0000000140)='./file1\x00', 0x141242, 0x40) syz_mount_image$hfsplus(&(0x7f0000000000), &(0x7f0000000480)='./file1\x00', 0x1008400, &(0x7f0000000080)=ANY=[], 0x85, 0x67b, &(0x7f0000001240)="$eJzs3c1vHGcdB/DvbNaON5TUbZM2RZUSNRIgIhI7Vgrm0oAQyqFCVTlwthInsbJJi+0it0LUvF97yB9QDr5xQEjcI8qFC9x69bESgksvmNOimZ1dr9/tpvHa4fOpxs8z88zzzO/57czOvjTaAP+3blxK81GK3Lj0xlK5vroy1V5dmbrfqyc5maSRNLtFiv90Op2Pk+vpLnm53FgPV+x0nIdz02998tnqp921Zr1U+zd269ep7T6L5XrJhSQn6vIxbBjv5l7jje01XNGfYZmwi73EwbCN9K+xfz3sbvnJ357ptwxobdd7zzMfOAaK7n1zi/HkVH2hl68DunfF7j37WFsedgAAAABwCJ5dy1qWcnrYcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBxUv/+f1EvjV79Qore7/+P1ttS14+W8wfb/dGTigMAAAAAAAAADtH5taxlKad7652i+s7/1WrlTPX3S3k3C5nNfC5nKTNZzGLmM5lkfGCg0aWZxcX5yX7P3v8ZsLXn1W17Xt0j0JN12foiZg0AAAAAAAAAT51f5sb69/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAUFMmJblEtZ3r18TSaScaSjJb7LSf/6NWPs0fDDgAAAAAeQ2ef+z27lrUs5XS/X1G953+xet8/lnfzIIuZy2Lamc2t6rOA7rv+xurKVHt1Zep+uWwd97v/PlC41Yjpfvaw/ZHPVXu0cjtz1ZbLuZm3UxS30qh6ls714tk+rl+UMRWvd43sM7JbdVnO/MO63OKDA012Jwf8MGW8yshIPyMTdWxlNp7bPRMHfHQ2H2kyjX6wZzYdadMkNuT89X0e71RdlvP57U45H4rNmbg6cPa9uHvOk6/9+Q8/vtt+cO/u7YVLR2dK+3OiLrvPK62tmZgayMRLxzsTYwfbfaLKxNn++o38ID/KpVzIm5nPXH6amSxmNhfy/ao2U5/PxcAlv0Omrm9Ye3OvSEbrM7T7YG2MKXvE9GrV93Tm8sO8nVuZzWvVf1czmW/lWq5leuARPruPZ9rGDld958vbBn/x63WlleR3dVm509xr4k9YmdfnBvI6+Jw7XrUNblnP0vMHuB/1svTH3UNpfqWulMf4VV0eDZszMTmQiRd2z8Tvq6eVhfaDe/N3Z97Z3+Ge/7CulNfRb47UXaI8X54vH6xqbePZUba9ULeNVMt6vkbrb1y6/Rpb2s7227pX6vKOV+po/Rpu60hXq7aXtm2bqtrODbRtfr3V7r8eehq+/AF4ap36xqnR1j9bf2991Pp1627rjbHvnfz2yVdGM/LXke80J058tfFK8ad8lJ+vv/8HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+v4X33r83027Pzm+qdDqdD3ZoOs6V3s+ZHeJBX34mGdaUR5Mcjcz/t9Pp1FuKoxDP7pVO6WQ6n7P7X5Lsb+dmku2azg8/CUN+YgKeuCuL99+5svDe+9+cuz9zZ/bO7IPpa9emJ6avvTZ15fZce3ai+3fYUQJPwvpNf9iRAAAAAAAAAAAAAPt1GP+cYOejjx3mVAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBj6salNB+lyOTE5YlyfXVlql0uvfr6ns0kjSTFz5Li4+R6ukvGB4YrdjrOw7nptz75bPXT9bGavf0bu/Xbn+V6yYUkJ+ryixrv5mOPV/RnWCbsYi9xMGz/CwAA///KjA4f") (async) openat(0xffffffffffffff9c, &(0x7f0000000240)='./file1\x00', 0x4842, 0x1cb) (async) writev(r0, &(0x7f0000000140)=[{&(0x7f0000001200)="10", 0x64000}], 0x1) (async) madvise(&(0x7f0000000000/0x600000)=nil, 0xffffffffffffffff, 0x67) (async) socket$inet6(0x10, 0x3, 0x0) (async) write(r1, &(0x7f0000000040)="2400000021002551241c0165ff00fc020a000060ff100f000ee1000c08000b0000000000", 0x24) (async) open(&(0x7f0000000140)='./file1\x00', 0x141242, 0x40) (async) [ 68.213490][ T5332] loop0: detected capacity change from 0 to 1024 [ 68.220499][ T4682] Bluetooth: hci0: command tx timeout [ 68.277931][ T25] audit: type=1800 audit(1753888858.527:2): pid=5332 uid=0 auid=4294967295 ses=4294967295 subj=unconfined op=collect_data cause=failed(directio) comm="syz.0.0" name="file1" dev="loop0" ino=20 res=0 errno=0 [ 68.289991][ T5332] [ 68.291170][ T5332] ============================================ [ 68.293899][ T5332] WARNING: possible recursive locking detected [ 68.296626][ T5332] 6.16.0-syzkaller-04405-g4b290aae788e #0 Not tainted [ 68.299505][ T5332] -------------------------------------------- [ 68.302204][ T5332] syz.0.0/5332 is trying to acquire lock: [ 68.304557][ T5332] ffff88805398d548 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_get_block+0x39e/0x1530 [ 68.309506][ T5332] [ 68.309506][ T5332] but task is already holding lock: [ 68.312643][ T5332] ffff88805398e2c8 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_extend+0x1fc/0x1990 [ 68.317334][ T5332] [ 68.317334][ T5332] other info that might help us debug this: [ 68.320771][ T5332] Possible unsafe locking scenario: [ 68.320771][ T5332] [ 68.324142][ T5332] CPU0 [ 68.325620][ T5332] ---- [ 68.327062][ T5332] lock(&HFSPLUS_I(inode)->extents_lock); [ 68.329590][ T5332] lock(&HFSPLUS_I(inode)->extents_lock); [ 68.332169][ T5332] [ 68.332169][ T5332] *** DEADLOCK *** [ 68.332169][ T5332] [ 68.335778][ T5332] May be due to missing lock nesting notation [ 68.335778][ T5332] [ 68.339517][ T5332] 5 locks held by syz.0.0/5332: [ 68.341675][ T5332] #0: ffff88803fa889b8 (&f->f_pos_lock){+.+.}-{4:4}, at: fdget_pos+0x247/0x320 [ 68.345596][ T5332] #1: ffff8880115e6428 (sb_writers#12){.+.+}-{0:0}, at: vfs_writev+0x288/0x960 [ 68.349626][ T5332] #2: ffff88805398e4b8 (&sb->s_type->i_mutex_key#20){+.+.}-{4:4}, at: generic_file_write_iter+0xe3/0x540 [ 68.354624][ T5332] #3: ffff88805398e2c8 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_extend+0x1fc/0x1990 [ 68.359619][ T5332] #4: ffff8880539890f8 (&sbi->alloc_mutex){+.+.}-{4:4}, at: hfsplus_block_allocate+0x94/0x9b0 [ 68.364150][ T5332] [ 68.364150][ T5332] stack backtrace: [ 68.366835][ T5332] CPU: 0 UID: 0 PID: 5332 Comm: syz.0.0 Not tainted 6.16.0-syzkaller-04405-g4b290aae788e #0 PREEMPT(full) [ 68.366851][ T5332] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 [ 68.366858][ T5332] Call Trace: [ 68.366866][ T5332] [ 68.366872][ T5332] dump_stack_lvl+0x189/0x250 [ 68.366891][ T5332] ? __pfx_dump_stack_lvl+0x10/0x10 [ 68.366903][ T5332] ? __pfx__printk+0x10/0x10 [ 68.366921][ T5332] ? print_lock_name+0xde/0x100 [ 68.366935][ T5332] print_deadlock_bug+0x28b/0x2a0 [ 68.366949][ T5332] validate_chain+0x1a3f/0x2140 [ 68.366961][ T5332] ? lock_release+0x4b/0x3e0 [ 68.366978][ T5332] ? look_up_lock_class+0x74/0x170 [ 68.367047][ T5332] ? register_lock_class+0x51/0x320 [ 68.367063][ T5332] __lock_acquire+0xab9/0xd20 [ 68.367080][ T5332] ? hfsplus_get_block+0x39e/0x1530 [ 68.367097][ T5332] lock_acquire+0x120/0x360 [ 68.367112][ T5332] ? hfsplus_get_block+0x39e/0x1530 [ 68.367128][ T5332] ? stack_trace_save+0x9c/0xe0 [ 68.367142][ T5332] ? __pfx_hlock_conflict+0x10/0x10 [ 68.367155][ T5332] __mutex_lock+0x187/0x1340 [ 68.367168][ T5332] ? hfsplus_get_block+0x39e/0x1530 [ 68.367185][ T5332] ? lockdep_unlock+0x89/0x120 [ 68.367199][ T5332] ? validate_chain+0x897/0x2140 [ 68.367210][ T5332] ? hfsplus_get_block+0x39e/0x1530 [ 68.367227][ T5332] ? __pfx___mutex_lock+0x10/0x10 [ 68.367243][ T5332] ? __lock_acquire+0xab9/0xd20 [ 68.367258][ T5332] hfsplus_get_block+0x39e/0x1530 [ 68.367277][ T5332] ? __pfx_hfsplus_get_block+0x10/0x10 [ 68.367296][ T5332] ? do_raw_spin_unlock+0x4d/0x240 [ 68.367307][ T5332] ? _raw_spin_unlock+0x28/0x50 [ 68.367320][ T5332] block_read_full_folio+0x29f/0x830 [ 68.367338][ T5332] ? __pfx_hfsplus_get_block+0x10/0x10 [ 68.367354][ T5332] filemap_read_folio+0x114/0x380 [ 68.367369][ T5332] ? __pfx_hfsplus_read_folio+0x10/0x10 [ 68.367382][ T5332] ? __pfx_filemap_read_folio+0x10/0x10 [ 68.367396][ T5332] ? filemap_add_folio+0x1af/0x270 [ 68.367407][ T5332] do_read_cache_folio+0x350/0x590 [ 68.367420][ T5332] ? __pfx_hfsplus_read_folio+0x10/0x10 [ 68.367435][ T5332] read_cache_page+0x5d/0x170 [ 68.367450][ T5332] hfsplus_block_allocate+0xe4/0x9b0 [ 68.367463][ T5332] ? __gup_longterm_locked+0x12c9/0x15b0 [ 68.367475][ T5332] hfsplus_file_extend+0xae3/0x1990 [ 68.367491][ T5332] ? sanity_check_pinned_pages+0x11c8/0x12c0 [ 68.367507][ T5332] ? __pfx_hfsplus_file_extend+0x10/0x10 [ 68.367529][ T5332] hfsplus_get_block+0x411/0x1530 [ 68.367546][ T5332] ? __pfx_hfsplus_get_block+0x10/0x10 [ 68.367561][ T5332] ? submit_page_section+0x5f9/0xa40 [ 68.367575][ T5332] ? __pfx_hfsplus_get_block+0x10/0x10 [ 68.367589][ T5332] __blockdev_direct_IO+0x16dd/0x33d0 [ 68.367608][ T5332] ? __pfx___blockdev_direct_IO+0x10/0x10 [ 68.367618][ T5332] ? __pfx_invalidate_inode_pages2_range+0x10/0x10 [ 68.367631][ T5332] ? __pfx_hfsplus_get_block+0x10/0x10 [ 68.367647][ T5332] ? filemap_write_and_wait_range+0x182/0x310 [ 68.367659][ T5332] ? __pfx_filemap_write_and_wait_range+0x10/0x10 [ 68.367678][ T5332] ? __pfx_queue_delayed_work_on+0x10/0x10 [ 68.367690][ T5332] ? _raw_spin_lock_irq+0xae/0xf0 [ 68.367702][ T5332] hfsplus_direct_IO+0x119/0x220 [ 68.367719][ T5332] generic_file_direct_write+0x1d8/0x3e0 [ 68.367734][ T5332] ? file_update_time+0x416/0x490 [ 68.367751][ T5332] __generic_file_write_iter+0x11d/0x230 [ 68.367765][ T5332] ? generic_file_write_iter+0xfb/0x540 [ 68.367784][ T5332] generic_file_write_iter+0x10f/0x540 [ 68.367798][ T5332] ? __pfx_generic_file_write_iter+0x10/0x10 [ 68.367814][ T5332] ? check_path+0x21/0x40 [ 68.367826][ T5332] ? lockdep_unlock+0x89/0x120 [ 68.367840][ T5332] ? validate_chain+0x897/0x2140 [ 68.367856][ T5332] do_iter_readv_writev+0x56e/0x7f0 [ 68.367870][ T5332] ? __pfx_do_iter_readv_writev+0x10/0x10 [ 68.367879][ T5332] ? rcu_read_lock_any_held+0xb3/0x120 [ 68.367894][ T5332] vfs_writev+0x31a/0x960 [ 68.367909][ T5332] ? __lock_acquire+0xab9/0xd20 [ 68.367923][ T5332] ? __pfx_vfs_writev+0x10/0x10 [ 68.367938][ T5332] ? __fget_files+0x2a/0x420 [ 68.367950][ T5332] ? __fget_files+0x3a0/0x420 [ 68.367962][ T5332] ? __fget_files+0x2a/0x420 [ 68.367976][ T5332] do_writev+0x14d/0x2d0 [ 68.367990][ T5332] ? __pfx_do_writev+0x10/0x10 [ 68.368002][ T5332] ? rcu_is_watching+0x15/0xb0 [ 68.368015][ T5332] ? do_syscall_64+0xbe/0x3b0 [ 68.368030][ T5332] do_syscall_64+0xfa/0x3b0 [ 68.368043][ T5332] ? lockdep_hardirqs_on+0x9c/0x150 [ 68.368054][ T5332] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 68.368063][ T5332] ? clear_bhb_loop+0x60/0xb0 [ 68.368073][ T5332] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 68.368082][ T5332] RIP: 0033:0x7f9907f8e9a9 [ 68.368092][ T5332] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 [ 68.368101][ T5332] RSP: 002b:00007f99043f5038 EFLAGS: 00000246 ORIG_RAX: 0000000000000014 [ 68.368112][ T5332] RAX: ffffffffffffffda RBX: 00007f99081b5fa0 RCX: 00007f9907f8e9a9 [ 68.368119][ T5332] RDX: 0000000000000001 RSI: 0000200000000140 RDI: 0000000000000004 [ 68.368125][ T5332] RBP: 00007f9908010d69 R08: 0000000000000000 R09: 0000000000000000 [ 68.368131][ T5332] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 68.368136][ T5332] R13: 0000000000000000 R14: 00007f99081b5fa0 R15: 00007ffce9777ef8 [ 68.368146][ T5332] [ 68.623504][ T5333] hfsplus: unable to mark blocks free: error -5 [ 68.627057][ T5333] hfsplus: can't free extent