program: r0 = socket$inet6_udp(0xa, 0x2, 0x0) ioctl$sock_SIOCGIFINDEX(0xffffffffffffffff, 0x8933, &(0x7f0000000340)={'ip6erspan0\x00', 0x0}) ioctl$sock_ipv6_tunnel_SIOCDELTUNNEL(r0, 0x89f2, &(0x7f0000000480)={'syztnl0\x00', &(0x7f0000000c40)={'syztnl0\x00', r1, 0x29, 0x7f, 0x81, 0x6, 0x40, @private0, @remote, 0x7, 0x20, 0x28, 0x5}}) statx(0xffffffffffffffff, &(0x7f00000001c0)='./file1\x00', 0x6000, 0x10, &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) syz_mount_image$hfsplus(&(0x7f0000000600), &(0x7f0000000040)='./file1\x00', 0x0, &(0x7f0000000080)={[{@part={'part', 0x3d, 0x40}}, {@nodecompose}, {@part={'part', 0x3d, 0x7}}, {@part={'part', 0x3d, 0xc}}, {@gid={'gid', 0x3d, r2}}, {@barrier}, {@nls={'nls', 0x3d, 'macinuit'}}, {@gid={'gid', 0x3d, 0xee00}}]}, 0x3, 0x5f4, &(0x7f0000000640)="$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") r3 = openat$dir(0xffffffffffffff9c, &(0x7f0000000300)='.\x00', 0x2000, 0x12) creat(&(0x7f0000000000)='./file1\x00', 0x86) sendmsg$NFNL_MSG_CTHELPER_NEW(0xffffffffffffffff, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000440)={&(0x7f00000006c0)={0x4c, 0x0, 0x9, 0x5, 0x0, 0x0, {0x1}}, 0x4c}}, 0x800) sendmsg$ETHTOOL_MSG_DEBUG_SET(0xffffffffffffffff, &(0x7f0000000500)={0x0, 0x0, &(0x7f00000004c0)={&(0x7f0000000d40)={0x14, 0x0, 0x0, 0x0, 0x25dfdbfe}, 0x14}}, 0x0) r4 = socket(0x10, 0x803, 0x0) sendto(r4, &(0x7f0000000740)="120000001200e7ef007b00000000000000a1", 0x12, 0x0, 0x0, 0x0) r5 = socket$nl_route(0x10, 0x3, 0x0) fsconfig$FSCONFIG_CMD_CREATE(0xffffffffffffffff, 0x6, 0x0, 0x0, 0x0) fsmount(0xffffffffffffffff, 0x0, 0x1b) r6 = socket$inet6_icmp_raw(0xa, 0x3, 0x3a) ioctl$sock_SIOCGIFINDEX(r6, 0x8933, &(0x7f0000000000)={'bridge0\x00', 0x0}) sendmsg$nl_route(r5, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000000580)={&(0x7f00000002c0)=@newlink={0x54, 0x10, 0x403, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x2c, 0x12, 0x0, 0x1, @vlan={{0x9}, {0x1c, 0x2, 0x0, 0x1, [@IFLA_VLAN_ID={0x6, 0x1, 0x4}, @IFLA_VLAN_INGRESS_QOS={0x10, 0x4, 0x0, 0x1, [@IFLA_VLAN_QOS_MAPPING={0xc, 0x1, {0x1, 0x7f}}]}]}}}, @IFLA_LINK={0x8, 0x5, r7}]}, 0x54}, 0x1, 0xba01, 0x0, 0x6000000}, 0x0) recvmmsg(r4, &(0x7f00000037c0)=[{{&(0x7f00000004c0)=@ethernet={0x0, @random}, 0xfdf4, &(0x7f0000000380)=[{&(0x7f0000000140)=""/100, 0x365}, {&(0x7f0000000280)=""/85, 0x7c}, {&(0x7f0000000fc0)=""/4096, 0x197}, {&(0x7f0000000400)=""/106, 0x1c}, {&(0x7f0000000980)=""/73, 0x1b}, {&(0x7f0000000200)=""/77, 0xbe8}, {&(0x7f00000007c0)=""/154, 0x8}, {&(0x7f00000001c0)=""/17, 0x1d8}], 0x21, &(0x7f0000000600)=""/191, 0x41}}], 0x4000000000003b4, 0x0, &(0x7f0000003700)={0x77359400}) getdents64(r3, &(0x7f0000000100)=""/154, 0x9a) unlinkat(0xffffffffffffff9c, &(0x7f00000003c0)='./file2\x00', 0x0) [ 85.254112][ T5316] Bluetooth: hci0: command tx timeout [ 85.386192][ T5342] loop0: detected capacity change from 0 to 1024 [ 85.449274][ T5342] [ 85.450685][ T5342] ============================================ [ 85.453413][ T5342] WARNING: possible recursive locking detected [ 85.456162][ T5342] 6.16.0-syzkaller-10499-g89748acdf226 #0 Not tainted [ 85.459178][ T5342] -------------------------------------------- [ 85.462266][ T5342] syz.0.0/5342 is trying to acquire lock: [ 85.464997][ T5342] ffff8880530c5548 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_get_block+0x39e/0x1530 [ 85.469906][ T5342] [ 85.469906][ T5342] but task is already holding lock: [ 85.473203][ T5342] ffff8880530c6988 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x294/0xb40 [ 85.477947][ T5342] [ 85.477947][ T5342] other info that might help us debug this: [ 85.481435][ T5342] Possible unsafe locking scenario: [ 85.481435][ T5342] [ 85.484494][ T5342] CPU0 [ 85.485715][ T5342] ---- [ 85.487196][ T5342] lock(&HFSPLUS_I(inode)->extents_lock); [ 85.489826][ T5342] lock(&HFSPLUS_I(inode)->extents_lock); [ 85.492487][ T5342] [ 85.492487][ T5342] *** DEADLOCK *** [ 85.492487][ T5342] [ 85.496079][ T5342] May be due to missing lock nesting notation [ 85.496079][ T5342] [ 85.499476][ T5342] 4 locks held by syz.0.0/5342: [ 85.501524][ T5342] #0: ffff8880410de428 (sb_writers#12){.+.+}-{0:0}, at: mnt_want_write+0x41/0x90 [ 85.505660][ T5342] #1: ffff8880530c6b78 (&sb->s_type->i_mutex_key#20){+.+.}-{4:4}, at: do_truncate+0x171/0x220 [ 85.510240][ T5342] #2: ffff8880530c6988 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x294/0xb40 [ 85.515740][ T5342] #3: ffff8880530bd8f8 (&sbi->alloc_mutex){+.+.}-{4:4}, at: hfsplus_block_free+0xbe/0x550 [ 85.520795][ T5342] [ 85.520795][ T5342] stack backtrace: [ 85.523469][ T5342] CPU: 0 UID: 0 PID: 5342 Comm: syz.0.0 Not tainted 6.16.0-syzkaller-10499-g89748acdf226 #0 PREEMPT(full) [ 85.523491][ T5342] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 [ 85.523500][ T5342] Call Trace: [ 85.523508][ T5342] [ 85.523514][ T5342] dump_stack_lvl+0x189/0x250 [ 85.523535][ T5342] ? __pfx_dump_stack_lvl+0x10/0x10 [ 85.523548][ T5342] ? __pfx__printk+0x10/0x10 [ 85.523564][ T5342] ? print_lock_name+0xde/0x100 [ 85.523579][ T5342] print_deadlock_bug+0x28b/0x2a0 [ 85.523597][ T5342] validate_chain+0x1a3f/0x2140 [ 85.523614][ T5342] ? lock_release+0x4b/0x3e0 [ 85.523629][ T5342] ? look_up_lock_class+0x74/0x170 [ 85.523773][ T5342] ? register_lock_class+0x51/0x320 [ 85.523790][ T5342] __lock_acquire+0xab9/0xd20 [ 85.523805][ T5342] ? hfsplus_get_block+0x39e/0x1530 [ 85.523823][ T5342] lock_acquire+0x120/0x360 [ 85.523839][ T5342] ? hfsplus_get_block+0x39e/0x1530 [ 85.523855][ T5342] ? stack_trace_save+0x9c/0xe0 [ 85.523867][ T5342] ? __pfx_hlock_conflict+0x10/0x10 [ 85.523877][ T5342] __mutex_lock+0x187/0x1340 [ 85.523888][ T5342] ? hfsplus_get_block+0x39e/0x1530 [ 85.523904][ T5342] ? lockdep_unlock+0x89/0x120 [ 85.523919][ T5342] ? validate_chain+0x897/0x2140 [ 85.523936][ T5342] ? hfsplus_get_block+0x39e/0x1530 [ 85.523955][ T5342] ? __pfx___mutex_lock+0x10/0x10 [ 85.523969][ T5342] hfsplus_get_block+0x39e/0x1530 [ 85.523987][ T5342] ? __pfx_hfsplus_get_block+0x10/0x10 [ 85.524003][ T5342] ? do_raw_spin_unlock+0x4d/0x240 [ 85.524016][ T5342] ? _raw_spin_unlock+0x28/0x50 [ 85.524032][ T5342] block_read_full_folio+0x29c/0x830 [ 85.524050][ T5342] ? __pfx_hfsplus_get_block+0x10/0x10 [ 85.524066][ T5342] filemap_read_folio+0x114/0x380 [ 85.524082][ T5342] ? __pfx_hfsplus_read_folio+0x10/0x10 [ 85.524097][ T5342] ? __pfx_filemap_read_folio+0x10/0x10 [ 85.524112][ T5342] ? filemap_add_folio+0x1af/0x270 [ 85.524125][ T5342] do_read_cache_folio+0x350/0x590 [ 85.524141][ T5342] ? __pfx_hfsplus_read_folio+0x10/0x10 [ 85.524157][ T5342] read_cache_page+0x5d/0x170 [ 85.524173][ T5342] hfsplus_block_free+0x121/0x550 [ 85.524190][ T5342] hfsplus_free_extents+0x10d/0xa60 [ 85.524208][ T5342] hfsplus_file_truncate+0x736/0xb40 [ 85.524227][ T5342] ? __pfx_hfsplus_file_truncate+0x10/0x10 [ 85.524245][ T5342] ? unmap_mapping_range+0xde/0x170 [ 85.524262][ T5342] ? __pfx_unmap_mapping_range+0x10/0x10 [ 85.524279][ T5342] ? truncate_setsize+0xcf/0xf0 [ 85.524290][ T5342] hfsplus_setattr+0x1c4/0x270 [ 85.524306][ T5342] ? __pfx_hfsplus_setattr+0x10/0x10 [ 85.524321][ T5342] notify_change+0xb33/0xe40 [ 85.524342][ T5342] do_truncate+0x1a4/0x220 [ 85.524354][ T5342] ? __pfx_do_truncate+0x10/0x10 [ 85.524365][ T5342] ? apparmor_file_truncate+0x23e/0x2d0 [ 85.524385][ T5342] path_openat+0x306c/0x3830 [ 85.524409][ T5342] ? __pfx_path_openat+0x10/0x10 [ 85.524425][ T5342] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 85.524441][ T5342] do_filp_open+0x1fa/0x410 [ 85.524458][ T5342] ? __lock_acquire+0xab9/0xd20 [ 85.524475][ T5342] ? __pfx_do_filp_open+0x10/0x10 [ 85.524495][ T5342] ? _raw_spin_unlock+0x28/0x50 [ 85.524510][ T5342] ? alloc_fd+0x64c/0x6c0 [ 85.524524][ T5342] do_sys_openat2+0x121/0x1c0 [ 85.524540][ T5342] ? __pfx_do_sys_openat2+0x10/0x10 [ 85.524556][ T5342] ? rcu_is_watching+0x15/0xb0 [ 85.524574][ T5342] __x64_sys_creat+0x8f/0xc0 [ 85.524590][ T5342] do_syscall_64+0xfa/0x3b0 [ 85.524624][ T5342] ? lockdep_hardirqs_on+0x9c/0x150 [ 85.524654][ T5342] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 85.524667][ T5342] ? clear_bhb_loop+0x60/0xb0 [ 85.524681][ T5342] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 85.524693][ T5342] RIP: 0033:0x7f2bced8eb69 [ 85.524706][ T5342] 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 [ 85.524715][ T5342] RSP: 002b:00007f2bcfb6f038 EFLAGS: 00000246 ORIG_RAX: 0000000000000055 [ 85.524728][ T5342] RAX: ffffffffffffffda RBX: 00007f2bcefb6080 RCX: 00007f2bced8eb69 [ 85.524737][ T5342] RDX: 0000000000000000 RSI: 0000000000000086 RDI: 0000200000000000 [ 85.524745][ T5342] RBP: 00007f2bcee11df1 R08: 0000000000000000 R09: 0000000000000000 [ 85.524752][ T5342] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 85.524759][ T5342] R13: 0000000000000000 R14: 00007f2bcefb6080 R15: 00007ffdd405c378 [ 85.524770][ T5342] [ 85.730851][ T5342] hfsplus: unable to mark blocks free: error -5 [ 85.733707][ T5342] hfsplus: can't free extent