program: mkdir(&(0x7f0000000180)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)='ramfs\x00', 0x210800, 0x0) syz_mount_image$hfsplus(&(0x7f0000000600), &(0x7f0000000040)='./file1\x00', 0x0, &(0x7f0000000080)={[{@part={'part', 0x3d, 0x500f}}, {@nodecompose}, {}, {@part={'part', 0x3d, 0xc}}, {@uid}, {@barrier}, {@nls={'nls', 0x3d, 'cp949'}}, {@gid={'gid', 0x3d, 0xee00}}]}, 0x3, 0x5f4, &(0x7f0000000640)="$eJzs3c9rHOcZB/DvrNay5YKzSewkLS0V9qElprZWmzg6FOqWUnQIJdBLLjkIex0Lr5UgbYoSSpH789r/IClFPvfUQ+nBkJ577VHQQw6F3nVzmdlZaW0rshQr2lXy+cC77zv7zrzzzOOZVzuzmA3wtbX4dk49SJHFy2+ul8tbm53e1mbn7rCd5HSSRtIcVClWkuLT5HoGJd8s36yHKz5vP+98/MbCZ+3795KiORirOVy/sd92B7NRl8wmmarroxrvxjOPV+wcYZmwS8PEwbg9fMLGYTZ/xusWmGSt5GySM/XngNSzQ2PMYT2zQ81yAAAAcEI9t53trOfcuOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAk6RIpgZVVRrD9myK4e//T9fvpW6faA/GHQAAAAAAAAAAHIHvbmc76zk3XH5YVN/5X6wWzlev38gHWUs3q7mS9Syln35W007SGhloen2p319tP3XLItl4NITBlvPHcLAAAAAAAAAA8NX1myzufv8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACToEimBlVVzg/brTSaSc4kmS7X20j+MWyfZA/GHQAAAAAcg+e2s531nBsuPyyqe/6Xqvv+M/kgK+lnOf300s3N6lnA4K6/sbXZ6W1tdu6W5clxf/y/Q4VRjZjBs4e99zxXrXFhZ4vF/Cy/yOXM5q2sZjm/zFL66WY2P61aSynSqp9etIZx7h3v9UeW3nparK9UkczkVpar2K7kRt5LLzfTqI6hWmf/Pd4rs1P8qHbAHN2s6/KI/lTXk6FVZeTUTkbm6tyX2Xh+/0wc8jx5fE/tNHaeQZ3/99Hn/Gxdl7n+w0TnfH7k7Htp/5wnF//znb/d7q3cuX1r7fLkHNIX9HgmOiOZePlrlYnpOhuDWfRws+XFattzWc7P815uppvXs5DXM5/X8lrmspBrI3m9cID5rXG4a+3S9+vGTJI/1vVkKPP6/EheR2e6VtU3+s4gS+XJ9MLR/xVofqtulPv4bV1Phscz0R45X17cPxN/fli+rvVW7qzeXnr/gPv7Xl2Xmf79RM3N5fnyQvmPVS09enaUfS/u2deu+s7v9DWe6Luw0/e0K3W6/gz35EjzVd/Le/Z1qr5XRvr2+pQDwITa/U777Ktnp2f+O/OvmU9mfjdze+bNMz85vXD629M59c/m36f+2rjf+GHxaj7Jr3fv/wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgC9u7cOP7iz1hj8D0Ot1VwfvfMUaf8lEhKFx0hrN+sqYlHiOrzHGSQk4Flf7d9+/uvbhRz9Yvrv0bvfd7kqn0742v3BtYf7a1VvLve7c4HXcYQJfgt0/+uOOBAAAAAAAAAAAADio4/jvBOM+RgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBkW3w7px6kSHvuyly5vLXZ6ZVl2N5ds5mkkaT4VVJ8mlzPoKQ1Mlzxeft55+M3Fj5r37+3O1ZzuH5jv+0OZqMumU0yVddHNd6NZx6v2DnCMmGXhomDcft/AAAA//9Shwfb") r0 = open(&(0x7f0000000300)='.\x00', 0x0, 0x0) mkdirat(r0, &(0x7f0000000340)='\x13\x13w\xc5\xfc5\xd4\x14T\xd5\xd4\x1d)\xad\x1a`)Y\x81F\xe6\xbe\x16nA\xad\r\xbd@T\x03<\x9f3\xbb\xda\x82$\xa2\xf3\xd7r\xe7cnH\xb3<\xbfp\x83r\xe8\xf1\xb9\x93>\xc5\x12wC\xbe\"\x06 \x9e\xf0-\xf9\xcb\xf2\xf6\xe8\x80\xd38/\x00', 0x0) r1 = open(&(0x7f0000021000)='./file0\x00', 0x0, 0x0) fchdir(r1) r2 = creat(&(0x7f0000000280)='./file0\x00', 0xecf86c37d53049cc) write$binfmt_script(r2, &(0x7f00000002c0)={'#! ', '', [{0x20, '\xa2\x9cV\t\xf4s\x84\x01\xa8\xb7\xec\x19\x8d\xf3rq\x11\xd7\x0f\xcbR\xab\xc6@(\xc2\xcfp\x02if\xe5\xbf\xce\xa4\x16|\x97\xcb\x8a\xd6\xa6G:)%}k\x9d\x13\x8b\x00\x00'}]}, 0x3a) mbind(&(0x7f0000ff9000/0x4000)=nil, 0x4000, 0x0, &(0x7f0000000140)=0xf, 0x8000000000000000, 0x1) close(r2) r3 = accept4$alg(r1, 0x0, 0x0, 0x800) r4 = socket(0x10, 0x3, 0x0) setsockopt$netlink_NETLINK_TX_RING(r4, 0x10e, 0xc, &(0x7f0000000980)={0x6}, 0x10) sendmsg$nl_generic(r4, &(0x7f0000000180)={0x0, 0x0, &(0x7f0000000080)={&(0x7f00000002c0)={0x1c, 0x52, 0x1, 0x70bd05, 0x25dfdbff, {0x2}, [@typed={0x8, 0x4, 0x0, 0x0, @uid}]}, 0x1c}}, 0x800) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(r0, 0xc0189375, &(0x7f00000001c0)={{0x1, 0x1, 0x18, r3}, '\x13\x13w\xc5\xfc5\xd4\x14T\xd5\xd4\x1d)\xad\x1a`)Y\x81F\xe6\xbe\x16nA\xad\r\xbd@T\x03<\x9f3\xbb\xda\x82$\xa2\xf3\xd7r\xe7cnH\xb3<\xbfp\x83r\xe8\xf1\xb9\x93>\xc5\x12wC\xbe\"\x06 \x9e\xf0-\xf9\xcb\xf2\xf6\xe8\x80\xd38/\x00'}) execve(&(0x7f0000000000)='./file0\x00', 0x0, 0x0) [ 80.163569][ T4665] Bluetooth: hci0: command tx timeout [ 80.349282][ T5320] loop0: detected capacity change from 0 to 1024 [ 80.437199][ T5320] [ 80.438731][ T5320] ============================================ [ 80.441778][ T5320] WARNING: possible recursive locking detected [ 80.444664][ T5320] syzkaller #0 Not tainted [ 80.446796][ T5320] -------------------------------------------- [ 80.449809][ T5320] syz.0.0/5320 is trying to acquire lock: [ 80.452777][ T5320] ffff888042317708 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_get_block+0x39e/0x1670 [ 80.458102][ T5320] [ 80.458102][ T5320] but task is already holding lock: [ 80.461346][ T5320] ffff888042315548 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x2b3/0xc30 [ 80.466074][ T5320] [ 80.466074][ T5320] other info that might help us debug this: [ 80.470128][ T5320] Possible unsafe locking scenario: [ 80.470128][ T5320] [ 80.473654][ T5320] CPU0 [ 80.475178][ T5320] ---- [ 80.476715][ T5320] lock(&HFSPLUS_I(inode)->extents_lock); [ 80.479720][ T5320] lock(&HFSPLUS_I(inode)->extents_lock); [ 80.482784][ T5320] [ 80.482784][ T5320] *** DEADLOCK *** [ 80.482784][ T5320] [ 80.486811][ T5320] May be due to missing lock nesting notation [ 80.486811][ T5320] [ 80.490646][ T5320] 4 locks held by syz.0.0/5320: [ 80.492872][ T5320] #0: ffff888038482420 (sb_writers#12){.+.+}-{0:0}, at: mnt_want_write+0x41/0x90 [ 80.497893][ T5320] #1: ffff888042315738 (&sb->s_type->i_mutex_key#25){+.+.}-{4:4}, at: do_truncate+0x18f/0x250 [ 80.503370][ T5320] #2: ffff888042315548 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x2b3/0xc30 [ 80.508382][ T5320] #3: ffff8880127fe8f8 (&sbi->alloc_mutex){+.+.}-{4:4}, at: hfsplus_block_free+0xc7/0x630 [ 80.513286][ T5320] [ 80.513286][ T5320] stack backtrace: [ 80.516806][ T5320] CPU: 0 UID: 0 PID: 5320 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) [ 80.516832][ T5320] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 80.516842][ T5320] Call Trace: [ 80.516852][ T5320] [ 80.516861][ T5320] dump_stack_lvl+0xe8/0x150 [ 80.516890][ T5320] print_deadlock_bug+0x279/0x290 [ 80.516913][ T5320] __lock_acquire+0x253f/0x2cf0 [ 80.516936][ T5320] ? lock_release+0x4b/0x3d0 [ 80.516951][ T5320] ? lock_release+0x4b/0x3d0 [ 80.516968][ T5320] ? is_bpf_text_address+0x292/0x2b0 [ 80.516984][ T5320] ? is_bpf_text_address+0x26/0x2b0 [ 80.516999][ T5320] lock_acquire+0xf0/0x2e0 [ 80.517015][ T5320] ? hfsplus_get_block+0x39e/0x1670 [ 80.517035][ T5320] __mutex_lock+0x19f/0x1300 [ 80.517109][ T5320] ? hfsplus_get_block+0x39e/0x1670 [ 80.517125][ T5320] ? stack_trace_save+0xa9/0x100 [ 80.517134][ T5320] ? __pfx_stack_trace_save+0x10/0x10 [ 80.517145][ T5320] ? check_path+0x21/0x40 [ 80.517158][ T5320] ? check_noncircular+0xda/0x150 [ 80.517171][ T5320] ? hfsplus_get_block+0x39e/0x1670 [ 80.517186][ T5320] ? __pfx___mutex_lock+0x10/0x10 [ 80.517196][ T5320] ? __lock_acquire+0x146e/0x2cf0 [ 80.517211][ T5320] hfsplus_get_block+0x39e/0x1670 [ 80.517264][ T5320] ? __pfx_hfsplus_get_block+0x10/0x10 [ 80.517289][ T5320] ? block_read_full_folio+0x672/0x830 [ 80.517305][ T5320] block_read_full_folio+0x29f/0x830 [ 80.517322][ T5320] ? __pfx_hfsplus_get_block+0x10/0x10 [ 80.517341][ T5320] filemap_read_folio+0x137/0x3b0 [ 80.517355][ T5320] ? __pfx_hfsplus_read_folio+0x10/0x10 [ 80.517373][ T5320] ? __pfx_filemap_read_folio+0x10/0x10 [ 80.517387][ T5320] ? filemap_add_folio+0x356/0x530 [ 80.517409][ T5320] do_read_cache_folio+0x358/0x590 [ 80.517422][ T5320] ? __pfx_hfsplus_read_folio+0x10/0x10 [ 80.517442][ T5320] read_cache_page+0x5d/0x170 [ 80.517457][ T5320] hfsplus_block_free+0x134/0x630 [ 80.517473][ T5320] ? __kmalloc_noprof+0x37d/0x760 [ 80.517493][ T5320] hfsplus_free_extents+0x121/0xa50 [ 80.517513][ T5320] hfsplus_file_truncate+0x762/0xc30 [ 80.517536][ T5320] ? __pfx___up_read+0x10/0x10 [ 80.517549][ T5320] ? __pfx_hfsplus_file_truncate+0x10/0x10 [ 80.517569][ T5320] ? unmap_mapping_range+0xe6/0x180 [ 80.517582][ T5320] ? __pfx_unmap_mapping_range+0x10/0x10 [ 80.517596][ T5320] ? setattr_prepare+0x232/0xb30 [ 80.517612][ T5320] ? truncate_setsize+0xcf/0xf0 [ 80.517630][ T5320] hfsplus_setattr+0x1c4/0x270 [ 80.517649][ T5320] ? __pfx_hfsplus_setattr+0x10/0x10 [ 80.517668][ T5320] notify_change+0xc1a/0xf40 [ 80.517683][ T5320] do_truncate+0x1c2/0x250 [ 80.517697][ T5320] ? __pfx_do_truncate+0x10/0x10 [ 80.517709][ T5320] ? apparmor_file_truncate+0x39f/0x470 [ 80.517773][ T5320] path_openat+0x2f89/0x3860 [ 80.517796][ T5320] ? __pfx_path_openat+0x10/0x10 [ 80.517803][ T5320] ? __x64_sys_creat+0x8f/0xc0 [ 80.517816][ T5320] ? __lock_acquire+0x6b5/0x2cf0 [ 80.517829][ T5320] do_file_open+0x23e/0x4a0 [ 80.517838][ T5320] ? __pfx_do_file_open+0x10/0x10 [ 80.517858][ T5320] ? _raw_spin_unlock+0x28/0x50 [ 80.517872][ T5320] ? alloc_fd+0x64b/0x6c0 [ 80.517885][ T5320] do_sys_openat2+0x113/0x200 [ 80.517896][ T5320] ? __se_sys_futex+0x3a8/0x450 [ 80.517908][ T5320] ? __pfx_do_sys_openat2+0x10/0x10 [ 80.517919][ T5320] ? rcu_is_watching+0x15/0xb0 [ 80.517933][ T5320] __x64_sys_creat+0x8f/0xc0 [ 80.517950][ T5320] do_syscall_64+0x14d/0xf80 [ 80.517963][ T5320] ? trace_irq_disable+0x3b/0x150 [ 80.517982][ T5320] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 80.517996][ T5320] ? clear_bhb_loop+0x40/0x90 [ 80.518013][ T5320] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 80.518026][ T5320] RIP: 0033:0x7f912e59c799 [ 80.518040][ T5320] 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 [ 80.518052][ T5320] RSP: 002b:00007f912f376fe8 EFLAGS: 00000246 ORIG_RAX: 0000000000000055 [ 80.518068][ T5320] RAX: ffffffffffffffda RBX: 00007f912e815fa0 RCX: 00007f912e59c799 [ 80.518080][ T5320] RDX: 0000000000000000 RSI: ecf86c37d53049cc RDI: 0000200000000280 [ 80.518090][ T5320] RBP: 00007f912e632c99 R08: 0000000000000000 R09: 0000000000000000 [ 80.518099][ T5320] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 80.518107][ T5320] R13: 00007f912e816038 R14: 00007f912e815fa0 R15: 00007ffed431ab68 [ 80.518124][ T5320] [ 80.760462][ T5320] hfsplus: unable to mark blocks free: error -5 [ 80.764015][ T5320] hfsplus: can't free extent: start 131, count 2