program: syz_mount_image$hfsplus(&(0x7f0000000600), &(0x7f0000000040)='./file1\x00', 0x0, &(0x7f0000000140)={[{@part={'part', 0x3d, 0x500f}}, {@nodecompose}, {@creator={'creator', 0x3d, "5c4b1d2e"}}, {@part={'part', 0x3d, 0xc}}, {@uid}, {@barrier}, {@type={'type', 0x3d, "1e63eb5e"}}, {@gid={'gid', 0x3d, 0xee00}}]}, 0x3, 0x5f4, &(0x7f0000000640)="$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") r0 = creat(&(0x7f0000000040)='./bus\x00', 0x0) io_setup(0x202, &(0x7f0000000200)=0x0) io_submit(r1, 0x3b, &(0x7f0000000540)=[&(0x7f00000000c0)={0x25, 0x0, 0x0, 0x1, 0x0, r0, &(0x7f0000000000), 0x4000, 0xa00}]) r2 = creat(&(0x7f00000000c0)='./file0/file0\x00', 0x0) ioctl$FITRIM(r2, 0xc080583d, &(0x7f0000000080)) ioctl$NBD_SET_SIZE_BLOCKS(r2, 0xab07, 0xa4c2) [ 85.680187][ T5325] loop0: detected capacity change from 0 to 1024 [ 85.703217][ T5302] Bluetooth: hci0: command tx timeout [ 85.869861][ T5325] [ 85.871062][ T5325] ====================================================== [ 85.874128][ T5325] WARNING: possible circular locking dependency detected [ 85.877182][ T5325] syzkaller #0 Not tainted [ 85.879181][ T5325] ------------------------------------------------------ [ 85.882299][ T5325] syz.0.0/5325 is trying to acquire lock: [ 85.884884][ T5325] ffff888042aff8f8 (&sbi->alloc_mutex){+.+.}-{4:4}, at: hfsplus_block_free+0xc7/0x630 [ 85.889257][ T5325] [ 85.889257][ T5325] but task is already holding lock: [ 85.892480][ T5325] ffff888042961548 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x2b3/0xc30 [ 85.897353][ T5325] [ 85.897353][ T5325] which lock already depends on the new lock. [ 85.897353][ T5325] [ 85.901771][ T5325] [ 85.901771][ T5325] the existing dependency chain (in reverse order) is: [ 85.905470][ T5325] [ 85.905470][ T5325] -> #1 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}: [ 85.909219][ T5325] __mutex_lock+0x19f/0x1300 [ 85.911498][ T5325] hfsplus_get_block+0x39e/0x1670 [ 85.913959][ T5325] block_read_full_folio+0x29f/0x830 [ 85.916383][ T5325] filemap_read_folio+0x137/0x3b0 [ 85.919412][ T5325] do_read_cache_folio+0x358/0x590 [ 85.921826][ T5325] read_cache_page+0x5d/0x170 [ 85.924001][ T5325] hfsplus_block_allocate+0xf3/0xce0 [ 85.926514][ T5325] hfsplus_file_extend+0xb2d/0x1d70 [ 85.928993][ T5325] hfsplus_get_block+0x42c/0x1670 [ 85.931383][ T5325] __block_write_begin_int+0x6c6/0x1910 [ 85.934073][ T5325] cont_write_begin+0x737/0xae0 [ 85.936293][ T5325] hfsplus_write_begin+0x66/0xb0 [ 85.938696][ T5325] cont_write_begin+0x7cc/0xae0 [ 85.941052][ T5325] hfsplus_write_begin+0x66/0xb0 [ 85.943459][ T5325] generic_perform_write+0x2e2/0x8f0 [ 85.945928][ T5325] generic_file_write_iter+0x14a/0x680 [ 85.948620][ T5325] aio_write+0x5cd/0x870 [ 85.950667][ T5325] io_submit_one+0x7bb/0x14c0 [ 85.952918][ T5325] __se_sys_io_submit+0x195/0x340 [ 85.955309][ T5325] do_syscall_64+0x14d/0xf80 [ 85.957578][ T5325] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 85.961124][ T5325] [ 85.961124][ T5325] -> #0 (&sbi->alloc_mutex){+.+.}-{4:4}: [ 85.964487][ T5325] __lock_acquire+0x15a5/0x2cf0 [ 85.966915][ T5325] lock_acquire+0xf0/0x2e0 [ 85.969090][ T5325] __mutex_lock+0x19f/0x1300 [ 85.971273][ T5325] hfsplus_block_free+0xc7/0x630 [ 85.973636][ T5325] hfsplus_free_extents+0x121/0xa50 [ 85.976125][ T5325] hfsplus_file_truncate+0x762/0xc30 [ 85.978741][ T5325] hfsplus_setattr+0x1c4/0x270 [ 85.981107][ T5325] notify_change+0xc1a/0xf40 [ 85.983384][ T5325] do_truncate+0x1c2/0x250 [ 85.985540][ T5325] path_openat+0x2f89/0x3860 [ 85.987805][ T5325] do_file_open+0x23e/0x4a0 [ 85.989893][ T5325] do_sys_openat2+0x113/0x200 [ 85.992177][ T5325] __x64_sys_creat+0x8f/0xc0 [ 85.994430][ T5325] do_syscall_64+0x14d/0xf80 [ 85.996857][ T5325] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 85.999669][ T5325] [ 85.999669][ T5325] other info that might help us debug this: [ 85.999669][ T5325] [ 86.003845][ T5325] Possible unsafe locking scenario: [ 86.003845][ T5325] [ 86.007047][ T5325] CPU0 CPU1 [ 86.009361][ T5325] ---- ---- [ 86.011807][ T5325] lock(&HFSPLUS_I(inode)->extents_lock); [ 86.014383][ T5325] lock(&sbi->alloc_mutex); [ 86.017551][ T5325] lock(&HFSPLUS_I(inode)->extents_lock); [ 86.021087][ T5325] lock(&sbi->alloc_mutex); [ 86.023042][ T5325] [ 86.023042][ T5325] *** DEADLOCK *** [ 86.023042][ T5325] [ 86.026471][ T5325] 3 locks held by syz.0.0/5325: [ 86.028608][ T5325] #0: ffff88801f21e420 (sb_writers#12){.+.+}-{0:0}, at: mnt_want_write+0x41/0x90 [ 86.032561][ T5325] #1: ffff888042961738 (&sb->s_type->i_mutex_key#25){+.+.}-{4:4}, at: do_truncate+0x18f/0x250 [ 86.036947][ T5325] #2: ffff888042961548 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x2b3/0xc30 [ 86.041421][ T5325] [ 86.041421][ T5325] stack backtrace: [ 86.043829][ T5325] CPU: 0 UID: 0 PID: 5325 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) [ 86.043847][ T5325] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 86.043855][ T5325] Call Trace: [ 86.043863][ T5325] [ 86.043869][ T5325] dump_stack_lvl+0xe8/0x150 [ 86.043939][ T5325] print_circular_bug+0x2e1/0x300 [ 86.043959][ T5325] check_noncircular+0x12e/0x150 [ 86.043977][ T5325] __lock_acquire+0x15a5/0x2cf0 [ 86.043992][ T5325] ? lockdep_unlock+0x5d/0xd0 [ 86.044004][ T5325] ? __lock_acquire+0x146e/0x2cf0 [ 86.044017][ T5325] ? _raw_spin_unlock_irqrestore+0x4c/0x80 [ 86.044032][ T5325] lock_acquire+0xf0/0x2e0 [ 86.044045][ T5325] ? hfsplus_block_free+0xc7/0x630 [ 86.044059][ T5325] __mutex_lock+0x19f/0x1300 [ 86.044073][ T5325] ? hfsplus_block_free+0xc7/0x630 [ 86.044086][ T5325] ? rcu_is_watching+0x15/0xb0 [ 86.044101][ T5325] ? trace_contention_end+0x3d/0x150 [ 86.044118][ T5325] ? __mutex_lock+0x319/0x1300 [ 86.044130][ T5325] ? hfsplus_block_free+0xc7/0x630 [ 86.044142][ T5325] ? __pfx___mutex_lock+0x10/0x10 [ 86.044157][ T5325] ? __mutex_unlock_slowpath+0x1bd/0x7d0 [ 86.044172][ T5325] hfsplus_block_free+0xc7/0x630 [ 86.044183][ T5325] ? __kmalloc_noprof+0x37d/0x760 [ 86.044199][ T5325] ? hfsplus_free_extents+0x2a/0xa50 [ 86.044213][ T5325] hfsplus_free_extents+0x121/0xa50 [ 86.044229][ T5325] hfsplus_file_truncate+0x762/0xc30 [ 86.044243][ T5325] ? __pfx___up_read+0x10/0x10 [ 86.044252][ T5325] ? __pfx_hfsplus_file_truncate+0x10/0x10 [ 86.044268][ T5325] ? unmap_mapping_range+0xe6/0x180 [ 86.044280][ T5325] ? __pfx_unmap_mapping_range+0x10/0x10 [ 86.044292][ T5325] ? setattr_prepare+0x232/0xb30 [ 86.044309][ T5325] ? truncate_setsize+0xcf/0xf0 [ 86.044321][ T5325] hfsplus_setattr+0x1c4/0x270 [ 86.044335][ T5325] ? __pfx_hfsplus_setattr+0x10/0x10 [ 86.044349][ T5325] notify_change+0xc1a/0xf40 [ 86.044366][ T5325] do_truncate+0x1c2/0x250 [ 86.044382][ T5325] ? __pfx_do_truncate+0x10/0x10 [ 86.044396][ T5325] ? apparmor_file_truncate+0x3b1/0x4a0 [ 86.044709][ T5325] path_openat+0x2f89/0x3860 [ 86.044731][ T5325] ? __pfx_path_openat+0x10/0x10 [ 86.044745][ T5325] ? __x64_sys_creat+0x8f/0xc0 [ 86.044759][ T5325] ? __lock_acquire+0x6b5/0x2cf0 [ 86.044775][ T5325] do_file_open+0x23e/0x4a0 [ 86.044789][ T5325] ? __pfx_do_file_open+0x10/0x10 [ 86.044802][ T5325] ? _raw_spin_unlock+0x28/0x50 [ 86.044813][ T5325] ? alloc_fd+0x64b/0x6c0 [ 86.044826][ T5325] do_sys_openat2+0x113/0x200 [ 86.044839][ T5325] ? __se_sys_futex+0x3a8/0x450 [ 86.044856][ T5325] ? __pfx_do_sys_openat2+0x10/0x10 [ 86.044870][ T5325] ? rcu_is_watching+0x15/0xb0 [ 86.044893][ T5325] __x64_sys_creat+0x8f/0xc0 [ 86.044902][ T5325] do_syscall_64+0x14d/0xf80 [ 86.044912][ T5325] ? trace_irq_disable+0x3b/0x150 [ 86.044923][ T5325] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 86.044931][ T5325] ? clear_bhb_loop+0x40/0x90 [ 86.044939][ T5325] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 86.044948][ T5325] RIP: 0033:0x7fddfdd9c139 [ 86.044957][ T5325] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 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 e8 ff ff ff f7 d8 64 89 01 48 [ 86.044963][ T5325] RSP: 002b:00007fddfec93028 EFLAGS: 00000246 ORIG_RAX: 0000000000000055 [ 86.044973][ T5325] RAX: ffffffffffffffda RBX: 00007fddfe015fa0 RCX: 00007fddfdd9c139 [ 86.044978][ T5325] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00002000000000c0 [ 86.044983][ T5325] RBP: 00007fddfde327e0 R08: 0000000000000000 R09: 0000000000000000 [ 86.044988][ T5325] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 86.044992][ T5325] R13: 00007fddfe016038 R14: 00007fddfe015fa0 R15: 00007ffdf0465028 [ 86.045001][ T5325] [ 86.282837][ T5325] hfsplus: unable to mark blocks free: error -5 [ 86.285626][ T5325] hfsplus: can't free extent: start 131, count 2