program: 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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") r0 = bpf$BPF_PROG_WITH_BTFID_LOAD(0x5, &(0x7f0000000200)=@bpf_tracing={0x1a, 0x2, &(0x7f0000000400)=ANY=[@ANYBLOB="cc45b6ff0000000001000000280000001f0ca0cdf84ad1a9d00853ffe086f95d92598a9f657e2aa604c6ce56fab3ec6aa2176dd000bd52a9ba9354e795be89bc8fc915fbdd0af39ed4f463065328ece193e24a415fa27636cfed07d63b7b0954c746be482fb78fdff5679d13376c0c1043d1c132"], &(0x7f0000000140)='GPL\x00', 0x730f, 0x0, 0x0, 0x40f00, 0x40, '\x00', 0x0, 0x17, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0, 0x0, 0x3817, 0xffffffffffffffff, 0x4, &(0x7f0000000180)=[0x1, 0x1, 0xffffffffffffffff], &(0x7f00000001c0)=[{0x5, 0x4, 0x8, 0x4}, {0x0, 0x5, 0xb, 0x7}, {0x5, 0x1, 0x2}, {0x4, 0x3, 0x4, 0x2}], 0x10, 0x7}, 0x94) r1 = add_key(&(0x7f0000000080)='user\x00', &(0x7f0000000000)={'syz', 0x2}, &(0x7f0000000040)='9', 0x1, 0xfffffffffffffffc) keyctl$chown(0x4, r1, 0xee00, 0xffffffffffffffff) keyctl$setperm(0x5, r1, 0x4002410) keyctl$chown(0x4, r1, 0x0, 0x0) r2 = bpf$MAP_CREATE(0x0, &(0x7f0000000300)=ANY=[@ANYBLOB="1c00000003000000070000000400000080410ee7", @ANYRES32, @ANYBLOB="010400"/20, @ANYRES32=0x0, @ANYRES32, @ANYBLOB="020000000300"/24, @ANYRES32, @ANYBLOB], 0x50) r3 = open(&(0x7f00000001c0)='./file1\x00', 0x14927e, 0x20) r4 = syz_open_dev$sg(&(0x7f0000001940), 0x0, 0x0) getsockopt$inet_sctp6_SCTP_GET_ASSOC_ID_LIST(r3, 0x84, 0x1d, &(0x7f0000000380), &(0x7f00000003c0)=0x4) ioctl$SG_SET_TIMEOUT(r4, 0x2276, &(0x7f0000000000)) fallocate(r3, 0x0, 0x0, 0x1001f0) pwritev2(r3, &(0x7f00000000c0)=[{&(0x7f0000001200)="9c9eb4fca7801e6ffa2d2f87af6dab41d25921c7d8b2663fe069790122d5c4044028f457dac9711d23289a77ae684298386926f71c7c0feed0290640d617f394eba93b0ee76f0903a0b3c9c260aa5165d8072ccc329f9e78ec5f0084303d785a241c0b296139edbc7c5d92cd5604c74935a169aa81c77b886ed0a7d675d86135c695facf1478780b54db51dbdd70ec493eee1eeac94e2e74afab47d53158a237ef0a46ebf8672e480f7fcf7507cb11740d0319d880f3d510aa2081a7d6f972beb0e75a6d0ab6780d39ca2eb9827154bdb18d661500693945fad2021cf9b1f0a5fb496fc97e6113cf1e16416077604353cfb97ef6e86316c015cecc6b6a9dde7c35716d18a487691b1646d51eab1615547eef1a600e62a96227106f0d6cf7b683aeb9fc90b9dcff04f88e0a25d53d3b10045bd1e247543671d2687794ba7cf9da1dc52ee24df9ef2f6639d2271bd7e1b46e19b41841fcf4250bc8d3d68ca6f15649d83c54ec9b9dbb04270ead4d816b4dae060890a38520cd88338aeb576687ef31b2ffab7065ef0f2edf78f6978d7a4370234871940994e219aeabe930bad33edbecf372c616b534d0135a87610e8e42ea4e404ae2678ea81f96ac17c39243d3538ede29a78f18175ef18511ede51c8811ae817c0635f2e1dea546a4b124a380577ba54bade53ff43e03031b11fdbfac8c360a7aa007b61e679caebf8b4d9fe5d3427122c9197669f7461bfa7cc9a38bc841157883d5a76d3f3f9ac66203b0c60300ba1d764ab43a4b4ee0fa3d8b95c7f77ccb6904289e8da1a544140947c54b7044a9cf9d3676226668e55301a72d13a5c7936dc1d20d6d9dc6ce19e2964f7e5322155b995f6cef523b4f824338e8c4af6b9f150752da7e247e2831821185ab76a35ee25a14a244f623aa39539afec05857aa1b277f54bf3934204e0e8a2166ecab3130e19e0d3495e3710b94811fab4608b92612658fa293d1988ac5d968b25ef678a283cf230b05b263021c8bdc7974bc385ff1221787e706c8fae94f1ae21d0c7d95f47e4147bc2f8024149e6ee26f76656f9adb5aeea085d93474b435afb7d32102e2ce50c59e3611b68a9dc1ace8ec1af1169f2a218979eef2f4ee88537323af202efbe2e1376df81c38b6c161536916bb86b08fae0d4d6ad9ab2d319110674549ca18f7bca3e306bb744d9a9505ef3a9232b3f78cf132d34ff1e023638413e037f42aee23b472e5792ff8eace6d6e8323be42c29300c249bc79fabb967eacfb59f10656d30c2ea4fe6ebe218a074785a537908675ad6db765b64c741c86873af81517aebaf80b5b3b26ef3f907fa1c3722cd6c319fc69bafdb285d76984825ca5c1af2093c9a27ee50c302617b967871b27a49cac3f909dbb68a47a0d2b7467a8c4e03246675ffc5f8764938a05657e129f88615bf66819b0dee8dd49", 0x400}], 0x1, 0x1, 0x9, 0x2) bpf$BPF_PROG_DETACH(0x9, &(0x7f00000002c0)={@map=r2, r0, 0x33, 0x14, 0x0, @void, @value=r3}, 0x20) [ 75.379070][ T5338] Bluetooth: hci0: command tx timeout [ 75.420050][ T5358] loop0: detected capacity change from 0 to 1024 [ 75.510065][ T5358] [ 75.511265][ T5358] ============================================ [ 75.513998][ T5358] WARNING: possible recursive locking detected [ 75.516466][ T5358] syzkaller #0 Not tainted [ 75.518357][ T5358] -------------------------------------------- [ 75.520999][ T5358] syz.0.0/5358 is trying to acquire lock: [ 75.523360][ T5358] ffff888052f8d548 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_get_block+0x39e/0x1530 [ 75.528099][ T5358] [ 75.528099][ T5358] but task is already holding lock: [ 75.531322][ T5358] ffff888052f8e988 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x294/0xb40 [ 75.536014][ T5358] [ 75.536014][ T5358] other info that might help us debug this: [ 75.539197][ T5358] Possible unsafe locking scenario: [ 75.539197][ T5358] [ 75.542246][ T5358] CPU0 [ 75.543503][ T5358] ---- [ 75.544791][ T5358] lock(&HFSPLUS_I(inode)->extents_lock); [ 75.547318][ T5358] lock(&HFSPLUS_I(inode)->extents_lock); [ 75.549790][ T5358] [ 75.549790][ T5358] *** DEADLOCK *** [ 75.549790][ T5358] [ 75.552857][ T5358] May be due to missing lock nesting notation [ 75.552857][ T5358] [ 75.556206][ T5358] 4 locks held by syz.0.0/5358: [ 75.558174][ T5358] #0: ffff888011b62428 (sb_writers#12){.+.+}-{0:0}, at: mnt_want_write+0x41/0x90 [ 75.561868][ T5358] #1: ffff888052f8eb78 (&sb->s_type->i_mutex_key#20){+.+.}-{4:4}, at: do_truncate+0x171/0x220 [ 75.565784][ T5358] #2: ffff888052f8e988 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x294/0xb40 [ 75.569454][ T5358] #3: ffff888052f858f8 (&sbi->alloc_mutex){+.+.}-{4:4}, at: hfsplus_block_free+0xbe/0x550 [ 75.573253][ T5358] [ 75.573253][ T5358] stack backtrace: [ 75.575747][ T5358] CPU: 0 UID: 0 PID: 5358 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) [ 75.575761][ T5358] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 [ 75.575769][ T5358] Call Trace: [ 75.575776][ T5358] [ 75.575783][ T5358] dump_stack_lvl+0x189/0x250 [ 75.575801][ T5358] ? __pfx_dump_stack_lvl+0x10/0x10 [ 75.575815][ T5358] ? __pfx__printk+0x10/0x10 [ 75.575832][ T5358] ? print_lock_name+0xde/0x100 [ 75.575848][ T5358] print_deadlock_bug+0x28b/0x2a0 [ 75.575862][ T5358] validate_chain+0x1a3f/0x2140 [ 75.575875][ T5358] ? lock_release+0x4b/0x3e0 [ 75.575893][ T5358] ? look_up_lock_class+0x74/0x170 [ 75.575943][ T5358] ? register_lock_class+0x51/0x320 [ 75.575984][ T5358] __lock_acquire+0xab9/0xd20 [ 75.576003][ T5358] ? hfsplus_get_block+0x39e/0x1530 [ 75.576015][ T5358] lock_acquire+0x120/0x360 [ 75.576031][ T5358] ? hfsplus_get_block+0x39e/0x1530 [ 75.576044][ T5358] ? stack_trace_save+0x9c/0xe0 [ 75.576058][ T5358] ? __pfx_hlock_conflict+0x10/0x10 [ 75.576070][ T5358] __mutex_lock+0x187/0x1350 [ 75.576082][ T5358] ? hfsplus_get_block+0x39e/0x1530 [ 75.576094][ T5358] ? lockdep_unlock+0x89/0x120 [ 75.576109][ T5358] ? validate_chain+0x897/0x2140 [ 75.576120][ T5358] ? hfsplus_get_block+0x39e/0x1530 [ 75.576131][ T5358] ? __pfx___mutex_lock+0x10/0x10 [ 75.576147][ T5358] hfsplus_get_block+0x39e/0x1530 [ 75.576162][ T5358] ? __pfx_hfsplus_get_block+0x10/0x10 [ 75.576173][ T5358] ? do_raw_spin_unlock+0x4d/0x240 [ 75.576187][ T5358] ? _raw_spin_unlock+0x28/0x50 [ 75.576204][ T5358] block_read_full_folio+0x29c/0x830 [ 75.576217][ T5358] ? __pfx_hfsplus_get_block+0x10/0x10 [ 75.576229][ T5358] filemap_read_folio+0x114/0x380 [ 75.576246][ T5358] ? __pfx_hfsplus_read_folio+0x10/0x10 [ 75.576256][ T5358] ? __pfx_filemap_read_folio+0x10/0x10 [ 75.576272][ T5358] ? filemap_add_folio+0x1af/0x270 [ 75.576288][ T5358] do_read_cache_folio+0x350/0x590 [ 75.576298][ T5358] ? __pfx_hfsplus_read_folio+0x10/0x10 [ 75.576309][ T5358] read_cache_page+0x5d/0x170 [ 75.576320][ T5358] hfsplus_block_free+0x121/0x550 [ 75.576337][ T5358] hfsplus_free_extents+0x10d/0xa60 [ 75.576349][ T5358] hfsplus_file_truncate+0x736/0xb40 [ 75.576365][ T5358] ? __pfx_hfsplus_file_truncate+0x10/0x10 [ 75.576377][ T5358] ? unmap_mapping_range+0xde/0x170 [ 75.576389][ T5358] ? __pfx_unmap_mapping_range+0x10/0x10 [ 75.576401][ T5358] ? truncate_setsize+0xcf/0xf0 [ 75.576413][ T5358] hfsplus_setattr+0x1c4/0x270 [ 75.576424][ T5358] ? __pfx_hfsplus_setattr+0x10/0x10 [ 75.576435][ T5358] notify_change+0xb36/0xe40 [ 75.576449][ T5358] do_truncate+0x1a4/0x220 [ 75.576463][ T5358] ? __pfx_do_truncate+0x10/0x10 [ 75.576474][ T5358] ? apparmor_file_truncate+0x23e/0x2d0 [ 75.576492][ T5358] path_openat+0x306c/0x3830 [ 75.576511][ T5358] ? __pfx_path_openat+0x10/0x10 [ 75.576521][ T5358] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 75.576536][ T5358] do_filp_open+0x1fa/0x410 [ 75.576546][ T5358] ? __lock_acquire+0xab9/0xd20 [ 75.576562][ T5358] ? __pfx_do_filp_open+0x10/0x10 [ 75.576584][ T5358] ? _raw_spin_unlock+0x28/0x50 [ 75.576599][ T5358] ? alloc_fd+0x64c/0x6c0 [ 75.576613][ T5358] do_sys_openat2+0x121/0x1c0 [ 75.576632][ T5358] ? __pfx_do_sys_openat2+0x10/0x10 [ 75.576650][ T5358] ? rcu_is_watching+0x15/0xb0 [ 75.576663][ T5358] __x64_sys_open+0x11e/0x150 [ 75.576674][ T5358] do_syscall_64+0xfa/0x3b0 [ 75.576685][ T5358] ? lockdep_hardirqs_on+0x9c/0x150 [ 75.576695][ T5358] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 75.576706][ T5358] ? clear_bhb_loop+0x60/0xb0 [ 75.576717][ T5358] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 75.576728][ T5358] RIP: 0033:0x7f631a18eec9 [ 75.576740][ T5358] 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.576749][ T5358] RSP: 002b:00007f631b0bc038 EFLAGS: 00000246 ORIG_RAX: 0000000000000002 [ 75.576762][ T5358] RAX: ffffffffffffffda RBX: 00007f631a3e5fa0 RCX: 00007f631a18eec9 [ 75.576770][ T5358] RDX: 0000000000000020 RSI: 000000000014927e RDI: 00002000000001c0 [ 75.576777][ T5358] RBP: 00007f631a211f91 R08: 0000000000000000 R09: 0000000000000000 [ 75.576784][ T5358] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 75.576790][ T5358] R13: 00007f631a3e6038 R14: 00007f631a3e5fa0 R15: 00007ffc03c747e8 [ 75.576802][ T5358] [ 75.775165][ T5358] hfsplus: unable to mark blocks free: error -5 [ 75.778382][ T5358] hfsplus: can't free extent