program: bpf$MAP_CREATE(0x100000000000000, &(0x7f0000000440)=ANY=[@ANYBLOB="0a00000016000000b30000007f00000000000000", @ANYRES32, @ANYBLOB="00000000002000000000000000000000000000008a0a000a15c90590b605c88c32709b1cfe2a03c8a5a42c9a7d39287f2bf00ea4ea25b112fdcc47831252450b8276c948d02b64f4f87485df0305bec78a6292b26c9b6d82b450a1bc07a3e8dc26a8de029c2522a0d5f7aa395c3bb81f86c080c8f2c43585e63c80868d757fedd03135698d847bb7227bf945feffc7c0cd2d1040fd2af2e5b6894d49f3c9f38e0ebdd630f31e4f", @ANYRES32=0x0, @ANYRES32, @ANYBLOB='\x00'/28], 0x48) r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000000)=@base={0xa, 0x5, 0x2, 0x7}, 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000000180)={0x0, 0xc, &(0x7f0000000440)=@framed={{}, [@ringbuf_output={{0x18, 0x1, 0x1, 0x0, r0}, {}, {}, {}, {}, {}, {}, {0x85, 0x0, 0x0, 0x3}}]}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, @fallback, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0}, 0x90) r1 = bpf$PROG_LOAD(0x5, &(0x7f00000000c0)={0x11, 0xc, &(0x7f0000000440)=ANY=[], &(0x7f0000000240)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, @fallback, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x90) syz_mount_image$hfsplus(&(0x7f0000000600), &(0x7f0000000040)='./file1\x00', 0x0, &(0x7f0000000080)={[{@part={'part', 0x3d, 0x40}}, {@nodecompose}, {@part={'part', 0x3d, 0x7}}, {@part={'part', 0x3d, 0xc}}, {@uid}, {@barrier}, {@nls={'nls', 0x3d, 'macinuit'}}, {@gid={'gid', 0x3d, 0xee00}}]}, 0x3, 0x5f4, &(0x7f0000000640)="$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") bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000bc0)={&(0x7f0000000040)='leases_conflict\x00', r1}, 0x10) r2 = bpf$PROG_LOAD(0x5, &(0x7f00000000c0)={0x11, 0xc, &(0x7f0000000440)=ANY=[], &(0x7f0000000240)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, @fallback, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x90) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000bc0)={&(0x7f0000000040)='leases_conflict\x00', r2}, 0x10) r3 = openat(0xffffffffffffff9c, &(0x7f0000000080)='./file1\x00', 0x2040, 0x0) fcntl$setlease(r3, 0x400, 0x0) fsetxattr$trusted_overlay_redirect(r3, 0x0, 0x0, 0x0, 0x0) unlink(&(0x7f0000000100)='./file1\x00') r4 = syz_init_net_socket$bt_hci(0x1f, 0x3, 0x1) bind$bt_hci(r4, &(0x7f0000000080)={0x1f, 0xffff, 0x3}, 0x6) write$bt_hci(r4, &(0x7f00000000c0)={0x1, @write_sc_support={{0xc7a, 0x1}}}, 0x6) ioctl$sock_ipv6_tunnel_SIOCGET6RD(0xffffffffffffffff, 0x89f8, &(0x7f0000000040)={'erspan0\x00', &(0x7f00000001c0)={'ip_vti0\x00', 0x0, 0x700, 0x7800, 0x3, 0x3, {{0x14, 0x4, 0x3, 0x1, 0x50, 0x67, 0x0, 0x4, 0x2f, 0x0, @rand_addr=0x64010100, @rand_addr=0x64010102, {[@timestamp={0x44, 0xc, 0x8e, 0x0, 0xc, [0x6, 0x0]}, @cipso={0x86, 0x2d, 0x3, [{0x2, 0x8, "2bc0e68d3c4a"}, {0x1, 0x4, "0a88"}, {0x5, 0xc, "a8562874f5971f3e6f0c"}, {0x2, 0xc, "0a754cb96e594801fbb6"}, {0x4, 0x3, '\f'}]}]}}}}}) r6 = bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000380)={&(0x7f0000000240)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xa9, 0xa9, 0x5, [@enum={0x8, 0x8, 0x0, 0x6, 0x4, [{0x3, 0x85b}, {0xa, 0x6}, {0x7, 0x1000}, {0xa, 0x10000}, {0x5, 0x7}, {0x7, 0xffff}, {0x9, 0x9}, {0x7, 0x2}]}, @typedef={0xc, 0x0, 0x0, 0x8, 0x3}, @datasec={0x7, 0x1, 0x0, 0xf, 0x1, [{0x2, 0x5, 0x4}], "9d"}, @const={0x5, 0x0, 0x0, 0xa, 0x5}, @var={0x2, 0x0, 0x0, 0xe, 0x3, 0x2}, @volatile={0x10, 0x0, 0x0, 0x9, 0x2}, @var={0xd, 0x0, 0x0, 0xe, 0x1}]}, {0x0, [0x2e, 0x92a131787194398a, 0x61]}}, &(0x7f0000000340)=""/28, 0xc9, 0x1c, 0x1, 0x2}, 0x28) bpf$MAP_CREATE_RINGBUF(0x0, &(0x7f00000003c0)={0x1b, 0x0, 0x0, 0x4b6019df, 0x0, 0x1, 0xc4, '\x00', r5, r6, 0x4, 0x5, 0x3}, 0x50) [ 75.131232][ T4698] Bluetooth: hci0: command tx timeout [ 75.244262][ T5350] loop0: detected capacity change from 0 to 1024 [ 75.348413][ T5349] hfsplus: invalid extended attribute record [ 75.351981][ T5349] [ 75.353210][ T5349] ============================================ [ 75.355936][ T5349] WARNING: possible recursive locking detected [ 75.358534][ T5349] 6.16.0-syzkaller-11322-g352af6a011d5 #0 Not tainted [ 75.361262][ T5349] -------------------------------------------- [ 75.363758][ T5349] syz.0.0/5349 is trying to acquire lock: [ 75.366046][ T5349] ffff888052b6d548 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_get_block+0x39e/0x1530 [ 75.370606][ T5349] [ 75.370606][ T5349] but task is already holding lock: [ 75.373731][ T5349] ffff888052b6e988 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x294/0xb40 [ 75.378448][ T5349] [ 75.378448][ T5349] other info that might help us debug this: [ 75.381736][ T5349] Possible unsafe locking scenario: [ 75.381736][ T5349] [ 75.384818][ T5349] CPU0 [ 75.386340][ T5349] ---- [ 75.388095][ T5349] lock(&HFSPLUS_I(inode)->extents_lock); [ 75.390808][ T5349] lock(&HFSPLUS_I(inode)->extents_lock); [ 75.393398][ T5349] [ 75.393398][ T5349] *** DEADLOCK *** [ 75.393398][ T5349] [ 75.396749][ T5349] May be due to missing lock nesting notation [ 75.396749][ T5349] [ 75.400189][ T5349] 3 locks held by syz.0.0/5349: [ 75.402159][ T5349] #0: ffff888052b6eb78 (&sb->s_type->i_mutex_key#20){+.+.}-{4:4}, at: hfsplus_file_release+0xe2/0x3e0 [ 75.406765][ T5349] #1: ffff888052b6e988 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x294/0xb40 [ 75.411725][ T5349] #2: ffff888011f850f8 (&sbi->alloc_mutex){+.+.}-{4:4}, at: hfsplus_block_free+0xbe/0x550 [ 75.416615][ T5349] [ 75.416615][ T5349] stack backtrace: [ 75.419380][ T5349] CPU: 0 UID: 0 PID: 5349 Comm: syz.0.0 Not tainted 6.16.0-syzkaller-11322-g352af6a011d5 #0 PREEMPT(full) [ 75.419399][ T5349] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 [ 75.419406][ T5349] Call Trace: [ 75.419415][ T5349] [ 75.419422][ T5349] dump_stack_lvl+0x189/0x250 [ 75.419441][ T5349] ? __pfx_dump_stack_lvl+0x10/0x10 [ 75.419452][ T5349] ? __pfx__printk+0x10/0x10 [ 75.419467][ T5349] ? print_lock_name+0xde/0x100 [ 75.419480][ T5349] print_deadlock_bug+0x28b/0x2a0 [ 75.419493][ T5349] validate_chain+0x1a3f/0x2140 [ 75.419504][ T5349] ? lock_release+0x4b/0x3e0 [ 75.419518][ T5349] ? look_up_lock_class+0x74/0x170 [ 75.419594][ T5349] ? register_lock_class+0x51/0x320 [ 75.419609][ T5349] __lock_acquire+0xab9/0xd20 [ 75.419623][ T5349] ? hfsplus_get_block+0x39e/0x1530 [ 75.419633][ T5349] lock_acquire+0x120/0x360 [ 75.419646][ T5349] ? hfsplus_get_block+0x39e/0x1530 [ 75.419655][ T5349] ? stack_trace_save+0x9c/0xe0 [ 75.419665][ T5349] ? __pfx_hlock_conflict+0x10/0x10 [ 75.419675][ T5349] __mutex_lock+0x187/0x1360 [ 75.419684][ T5349] ? hfsplus_get_block+0x39e/0x1530 [ 75.419694][ T5349] ? lockdep_unlock+0x89/0x120 [ 75.419707][ T5349] ? hfsplus_get_block+0x39e/0x1530 [ 75.419716][ T5349] ? __pfx___mutex_lock+0x10/0x10 [ 75.419729][ T5349] hfsplus_get_block+0x39e/0x1530 [ 75.419741][ T5349] ? __pfx_hfsplus_get_block+0x10/0x10 [ 75.419749][ T5349] ? do_raw_spin_unlock+0x4d/0x240 [ 75.419760][ T5349] ? _raw_spin_unlock+0x28/0x50 [ 75.419774][ T5349] block_read_full_folio+0x29c/0x830 [ 75.419785][ T5349] ? __pfx_hfsplus_get_block+0x10/0x10 [ 75.419794][ T5349] filemap_read_folio+0x117/0x380 [ 75.419809][ T5349] ? __pfx_hfsplus_read_folio+0x10/0x10 [ 75.419823][ T5349] ? __pfx_filemap_read_folio+0x10/0x10 [ 75.419836][ T5349] ? filemap_add_folio+0x1af/0x270 [ 75.419849][ T5349] do_read_cache_folio+0x350/0x590 [ 75.419863][ T5349] ? __pfx_hfsplus_read_folio+0x10/0x10 [ 75.419877][ T5349] read_cache_page+0x5d/0x170 [ 75.419891][ T5349] hfsplus_block_free+0x121/0x550 [ 75.419907][ T5349] hfsplus_free_extents+0x10d/0xa60 [ 75.419918][ T5349] hfsplus_file_truncate+0x736/0xb40 [ 75.419930][ T5349] ? __pfx_hfsplus_file_truncate+0x10/0x10 [ 75.419942][ T5349] ? down_write+0x162/0x1f0 [ 75.419952][ T5349] ? __pfx_down_write+0x10/0x10 [ 75.419963][ T5349] hfsplus_file_release+0x303/0x3e0 [ 75.419972][ T5349] ? __pfx_hfsplus_file_release+0x10/0x10 [ 75.419981][ T5349] __fput+0x449/0xa70 [ 75.419997][ T5349] task_work_run+0x1d1/0x260 [ 75.420010][ T5349] ? __pfx_task_work_run+0x10/0x10 [ 75.420023][ T5349] ? exit_to_user_mode_loop+0x40/0x110 [ 75.420037][ T5349] exit_to_user_mode_loop+0xec/0x110 [ 75.420056][ T5349] do_syscall_64+0x2bd/0x3b0 [ 75.420067][ T5349] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 75.420077][ T5349] ? asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 75.420086][ T5349] ? clear_bhb_loop+0x60/0xb0 [ 75.420097][ T5349] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 75.420107][ T5349] RIP: 0033:0x7f048fd8eb69 [ 75.420118][ T5349] 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 [ 75.420126][ T5349] RSP: 002b:00007ffdd4daad78 EFLAGS: 00000246 ORIG_RAX: 00000000000001b4 [ 75.420138][ T5349] RAX: 0000000000000000 RBX: 0000000000012533 RCX: 00007f048fd8eb69 [ 75.420145][ T5349] RDX: 0000000000000000 RSI: 000000000000001e RDI: 0000000000000003 [ 75.420151][ T5349] RBP: 00007f048ffb7ba0 R08: 0000000000000001 R09: 00000012d4dab06f [ 75.420157][ T5349] R10: 00007f048fbff030 R11: 0000000000000246 R12: 00007f048ffb5fac [ 75.420164][ T5349] R13: 00007f048ffb5fa0 R14: ffffffffffffffff R15: 00007ffdd4daae90 [ 75.420175][ T5349] [ 75.611988][ T5349] hfsplus: unable to mark blocks free: error -5 [ 75.615391][ T5349] hfsplus: can't free extent