hfsplus: invalid extended attribute record ============================================ WARNING: possible recursive locking detected syzkaller #0 Not tainted -------------------------------------------- syz.1.168/7116 is trying to acquire lock: ffff88806270c478 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_get_block+0x3a0/0x1670 fs/hfsplus/extents.c:260 but task is already holding lock: ffff88806270adf8 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x2b3/0xc30 fs/hfsplus/extents.c:573 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&HFSPLUS_I(inode)->extents_lock); lock(&HFSPLUS_I(inode)->extents_lock); *** DEADLOCK *** May be due to missing lock nesting notation 3 locks held by syz.1.168/7116: #0: ffff88806270b058 (&sb->s_type->i_mutex_key#45){+.+.}-{4:4}, at: inode_lock include/linux/fs.h:1028 [inline] #0: ffff88806270b058 (&sb->s_type->i_mutex_key#45){+.+.}-{4:4}, at: hfsplus_file_release+0xe8/0x3e0 fs/hfsplus/inode.c:254 #1: ffff88806270adf8 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{4:4}, at: hfsplus_file_truncate+0x2b3/0xc30 fs/hfsplus/extents.c:573 #2: ffff88805f0798e8 (&sbi->alloc_mutex){+.+.}-{4:4}, at: hfsplus_block_free+0xc7/0x630 fs/hfsplus/bitmap.c:182 stack backtrace: CPU: 0 UID: 0 PID: 7116 Comm: syz.1.168 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2026 Call Trace: dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120 print_deadlock_bug+0x279/0x290 kernel/locking/lockdep.c:3041 check_deadlock kernel/locking/lockdep.c:3093 [inline] validate_chain kernel/locking/lockdep.c:3895 [inline] __lock_acquire+0x253f/0x2cf0 kernel/locking/lockdep.c:5237 lock_acquire+0x106/0x330 kernel/locking/lockdep.c:5868 __mutex_lock_common kernel/locking/rtmutex_api.c:533 [inline] mutex_lock_nested+0x5a/0x1d0 kernel/locking/rtmutex_api.c:552 hfsplus_get_block+0x3a0/0x1670 fs/hfsplus/extents.c:260 block_read_full_folio+0x29f/0x830 fs/buffer.c:2421 filemap_read_folio+0x137/0x3b0 mm/filemap.c:2496 do_read_cache_folio+0x2bf/0x560 mm/filemap.c:4096 do_read_cache_page mm/filemap.c:4162 [inline] read_cache_page+0x5d/0x170 mm/filemap.c:4171 read_mapping_page include/linux/pagemap.h:1022 [inline] hfsplus_block_free+0x134/0x630 fs/hfsplus/bitmap.c:185 hfsplus_free_extents+0x121/0xa50 fs/hfsplus/extents.c:360 hfsplus_file_truncate+0x762/0xc30 fs/hfsplus/extents.c:588 hfsplus_delete_inode fs/hfsplus/inode.c:-1 [inline] hfsplus_file_release+0x309/0x3e0 fs/hfsplus/inode.c:259 __fput+0x45e/0xa80 fs/file_table.c:469 task_work_run+0x1d9/0x270 kernel/task_work.c:233 exit_task_work include/linux/task_work.h:40 [inline] do_exit+0x69b/0x2320 kernel/exit.c:971 do_group_exit+0x21b/0x2d0 kernel/exit.c:1112 get_signal+0x125c/0x1310 kernel/signal.c:3034 arch_do_signal_or_restart+0xbc/0x830 arch/x86/kernel/signal.c:337 __exit_to_user_mode_loop kernel/entry/common.c:64 [inline] exit_to_user_mode_loop+0x86/0x480 kernel/entry/common.c:98 __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline] syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline] syscall_exit_to_user_mode include/linux/entry-common.h:325 [inline] do_syscall_64+0x32d/0xf80 arch/x86/entry/syscall_64.c:100 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f828de9c84e Code: Unable to access opcode bytes at 0x7f828de9c824. RSP: 002b:00007f828c135da8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: 0000000000c2d000 RBX: 00007f828c1366c0 RCX: 00007f828de9c84e RDX: 0000000001000000 RSI: 00007f8283d16000 RDI: 000000000000000a RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 000000000000000a R13: 00007f828c135ee0 R14: 00007f828c135ea0 R15: 00007f8283d16000 hfsplus: unable to mark blocks free: error -5 hfsplus: can't free extent: start 134, count 1