Debian GNU/Linux 9 syzkaller ttyS0 Warning: Permanently added '10.128.1.38' (ECDSA) to the list of known hosts. executing program syzkaller login: [ 27.874503] [ 27.876153] ============================================ [ 27.881928] WARNING: possible recursive locking detected [ 27.887486] 4.14.302-syzkaller #0 Not tainted [ 27.891960] -------------------------------------------- [ 27.897387] syz-executor241/7983 is trying to acquire lock: [ 27.903074] (&HFSPLUS_I(inode)->extents_lock){+.+.}, at: [] hfsplus_get_block+0x1f9/0x820 [ 27.913223] [ 27.913223] but task is already holding lock: [ 27.919176] (&HFSPLUS_I(inode)->extents_lock){+.+.}, at: [] hfsplus_file_extend+0x188/0xef0 [ 27.929317] [ 27.929317] other info that might help us debug this: [ 27.935962] Possible unsafe locking scenario: [ 27.935962] [ 27.941990] CPU0 [ 27.944556] ---- [ 27.947112] lock(&HFSPLUS_I(inode)->extents_lock); [ 27.952190] lock(&HFSPLUS_I(inode)->extents_lock); [ 27.957263] [ 27.957263] *** DEADLOCK *** [ 27.957263] [ 27.963303] May be due to missing lock nesting notation [ 27.963303] [ 27.970732] 4 locks held by syz-executor241/7983: [ 27.975552] #0: (sb_writers#10){.+.+}, at: [] vfs_writev+0x208/0x290 [ 27.983774] #1: (&sb->s_type->i_mutex_key#17){+.+.}, at: [] generic_file_write_iter+0x99/0x650 [ 27.994254] #2: (&HFSPLUS_I(inode)->extents_lock){+.+.}, at: [] hfsplus_file_extend+0x188/0xef0 [ 28.004833] #3: (&sbi->alloc_mutex){+.+.}, at: [] hfsplus_block_allocate+0xd2/0x910 [ 28.014356] [ 28.014356] stack backtrace: [ 28.018836] CPU: 0 PID: 7983 Comm: syz-executor241 Not tainted 4.14.302-syzkaller #0 [ 28.026693] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022 [ 28.036023] Call Trace: [ 28.038590] dump_stack+0x1b2/0x281 [ 28.042190] __lock_acquire.cold+0x180/0x97c [ 28.046573] ? register_lock_class+0x1d0/0x1180 [ 28.051215] ? trace_hardirqs_on+0x10/0x10 [ 28.055425] ? add_lock_to_list.constprop.0+0x17d/0x330 [ 28.060770] ? save_trace+0xd6/0x290 [ 28.064458] ? __lock_acquire+0x2190/0x3f20 [ 28.068841] lock_acquire+0x170/0x3f0 [ 28.072620] ? hfsplus_get_block+0x1f9/0x820 [ 28.077004] ? hfsplus_get_block+0x1f9/0x820 [ 28.081470] __mutex_lock+0xc4/0x1310 [ 28.085243] ? hfsplus_get_block+0x1f9/0x820 [ 28.089717] ? hfsplus_get_block+0x1f9/0x820 [ 28.094101] ? __ww_mutex_wakeup_for_backoff+0x210/0x210 [ 28.099526] ? lock_acquire+0x170/0x3f0 [ 28.103479] ? create_page_buffers+0x14d/0x1c0 [ 28.108035] hfsplus_get_block+0x1f9/0x820 [ 28.112242] ? _raw_spin_unlock+0x29/0x40 [ 28.116361] ? create_page_buffers+0xce/0x1c0 [ 28.120828] block_read_full_page+0x25e/0x8d0 [ 28.125299] ? hfsplus_file_extend+0xef0/0xef0 [ 28.129851] ? __lru_cache_add+0x178/0x250 [ 28.134057] ? __bread_gfp+0x2e0/0x2e0 [ 28.137919] ? add_to_page_cache_lru+0x136/0x2b0 [ 28.142660] ? add_to_page_cache_locked+0x40/0x40 [ 28.147472] ? alloc_pages_current+0x15d/0x260 [ 28.152121] do_read_cache_page+0x38e/0xc10 [ 28.156423] ? hfsplus_bmap+0x30/0x30 [ 28.160196] hfsplus_block_allocate+0x189/0x910 [ 28.164840] ? check_usage+0x2b0/0x620 [ 28.168700] hfsplus_file_extend+0x421/0xef0 [ 28.173083] ? hfsplus_free_fork+0x720/0x720 [ 28.177464] ? check_usage_backwards+0x2c0/0x2c0 [ 28.182195] ? trace_hardirqs_on+0x10/0x10 [ 28.186406] ? is_bpf_text_address+0x91/0x150 [ 28.190902] ? deref_stack_reg+0x124/0x1a0 [ 28.195113] hfsplus_get_block+0x15b/0x820 [ 28.199322] ? find_get_entry+0x312/0x630 [ 28.203615] ? create_page_buffers+0xce/0x1c0 [ 28.208080] __block_write_begin_int+0x35c/0x11d0 [ 28.212894] ? hfsplus_file_extend+0xef0/0xef0 [ 28.217448] ? __breadahead_gfp+0x150/0x150 [ 28.221739] ? wait_for_stable_page+0xe3/0x260 [ 28.226296] ? hfsplus_file_extend+0xef0/0xef0 [ 28.230939] block_write_begin+0x58/0x270 [ 28.235089] cont_write_begin+0x4a3/0x740 [ 28.239232] ? block_write_begin+0x270/0x270 [ 28.243633] ? check_preemption_disabled+0x35/0x240 [ 28.248634] ? lock_downgrade+0x740/0x740 [ 28.252763] hfsplus_write_begin+0x87/0x130 [ 28.257059] ? hfsplus_file_extend+0xef0/0xef0 [ 28.261626] cont_write_begin+0x296/0x740 [ 28.265755] ? block_write_begin+0x270/0x270 [ 28.270140] ? iov_iter_fault_in_readable+0x1b9/0x360 [ 28.275302] hfsplus_write_begin+0x87/0x130 [ 28.279596] ? hfsplus_file_extend+0xef0/0xef0 [ 28.284162] generic_perform_write+0x1d5/0x430 [ 28.288722] ? __mnt_drop_write_file+0x5f/0x90 [ 28.293299] ? filemap_page_mkwrite+0x2d0/0x2d0 [ 28.297952] ? current_time+0xb0/0xb0 [ 28.301730] ? lock_acquire+0x170/0x3f0 [ 28.305793] __generic_file_write_iter+0x227/0x590 [ 28.310705] generic_file_write_iter+0x36f/0x650 [ 28.315438] do_iter_readv_writev+0x4cf/0x5f0 [ 28.319910] ? clone_verify_area+0x1e0/0x1e0 [ 28.324293] ? rw_verify_area+0xe1/0x2a0 [ 28.328327] do_iter_write+0x152/0x550 [ 28.332200] ? rcu_lockdep_current_cpu_online+0xed/0x140 [ 28.337623] ? rcu_read_lock_sched_held+0x16c/0x1d0 [ 28.342615] vfs_writev+0x125/0x290 [ 28.346562] ? vfs_iter_write+0xa0/0xa0 [ 28.350513] ? debug_check_no_obj_freed+0x2c0/0x680 [ 28.355512] ? __fd_install+0x227/0x5c0 [ 28.359471] ? rcu_lockdep_current_cpu_online+0xed/0x140 [ 28.364909] ? putname+0xcd/0x110 [ 28.368360] ? rcu_read_lock_sched_held+0x16c/0x1d0 [ 28.373351] ? kmem_cache_free+0x23a/0x2b0 [ 28.377560] ? putname+0xcd/0x110 [ 28.380987] SyS_pwritev2+0x195/0x230 [ 28.384767] ? SyS_pwritev+0x200/0x200 [ 28.388627] ? do_syscall_64+0x4c/0x640 [ 28.392577] ? SyS_pwritev+0x200/0x200 [ 28.396454] do_syscall_64+0x1d5/0x640 [ 28.400317] entry_SYSCALL_64_after_hwframe+0x5e/0xd3 [ 28.405476] RIP: 0033:0x7f0ede03fad9 [ 28.409156] RSP: 002b:00007ffe6ee9eb18 EFLAGS: 00000246 ORIG_RAX: 0000000000000148 [ 28.416835] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f0ede03fad9 [ 28.424075] RDX: 0000000000000001 RSI: 0000000020000200 RDI: 0000000000000004 [ 28.431314] RBP: 00007f0eddfff0e0 R08: 0000000000000000 R09: 0000000000000000 [ 28.438552] R10: 0000000000005405 R11: 0000000000000246 R12: 00007f0eddfff170 [ 28.445889] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 [ 28.454318] hfsplus: request for non-existent node 31668 in B*Tree [ 28.460733] hfsplus: request for non-existent node 31668 in B*Tree [ 28.468603] hfsplus: request for non-existent node 31668 in B*Tree [ 28.474931] hfsplus: request for non-existent node 31668 in B*Tree [ 28.481496] hfsplus: request for non-existent node 31668 in B*Tree [ 28.487843] hfsplus: request for non-existent node 31668 in B*Tree [ 28.494304] hfsplus: request for non-existent node 31668 in B*Tree [ 28.500640] hfsplus: request for non-existent node 31668 in B*Tree [ 28.506959] hfsplus: request for non-existent node 31668 in B*Tree [ 28.513335] hfsplus: request for non-existent node 31668 in B*Tree [ 28.519710] hfsplus: request for non-existent node 31668 in B*Tree [ 28.526000]