loop2: detected capacity change from 0 to 64
hfs: unable to locate alternate MDB
hfs: continuing without an alternate MDB
======================================================
WARNING: possible circular locking dependency detected
6.6.102-syzkaller #0 Not tainted
------------------------------------------------------
syz.2.832/8779 is trying to acquire lock:
ffff88805a718778 (&HFS_I(tree->inode)->extents_lock){+.+.}-{3:3}, at: hfs_extend_file+0xdb/0x1220 fs/hfs/extent.c:397
but task is already holding lock:
ffff8880262dc0b0 (&tree->tree_lock/1){+.+.}-{3:3}, at: hfs_find_init+0x15f/0x1d0 fs/hfs/bfind.c:-1
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1 (&tree->tree_lock/1){+.+.}-{3:3}:
__mutex_lock_common kernel/locking/mutex.c:603 [inline]
__mutex_lock+0x129/0xcc0 kernel/locking/mutex.c:747
hfs_find_init+0x15f/0x1d0 fs/hfs/bfind.c:-1
hfs_ext_read_extent fs/hfs/extent.c:200 [inline]
hfs_get_block+0x51c/0xbd0 fs/hfs/extent.c:366
block_read_full_folio+0x42e/0xf40 fs/buffer.c:2406
filemap_read_folio+0x167/0x760 mm/filemap.c:2420
do_read_cache_folio+0x470/0x7e0 mm/filemap.c:3789
do_read_cache_page+0x32/0x250 mm/filemap.c:3855
read_mapping_page include/linux/pagemap.h:892 [inline]
hfs_btree_open+0x56c/0x10c0 fs/hfs/btree.c:78
hfs_mdb_get+0x1367/0x2010 fs/hfs/mdb.c:204
hfs_fill_super+0xd1d/0x1320 fs/hfs/super.c:406
mount_bdev+0x22b/0x2d0 fs/super.c:1643
legacy_get_tree+0xea/0x180 fs/fs_context.c:662
vfs_get_tree+0x8c/0x280 fs/super.c:1764
do_new_mount+0x24b/0xa40 fs/namespace.c:3371
do_mount fs/namespace.c:3711 [inline]
__do_sys_mount fs/namespace.c:3920 [inline]
__se_sys_mount+0x2da/0x3c0 fs/namespace.c:3897
do_syscall_x64 arch/x86/entry/common.c:51 [inline]
do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:81
entry_SYSCALL_64_after_hwframe+0x68/0xd2
-> #0 (&HFS_I(tree->inode)->extents_lock){+.+.}-{3:3}:
check_prev_add kernel/locking/lockdep.c:3134 [inline]
check_prevs_add kernel/locking/lockdep.c:3253 [inline]
validate_chain kernel/locking/lockdep.c:3869 [inline]
__lock_acquire+0x2ddb/0x7c80 kernel/locking/lockdep.c:5137
lock_acquire+0x197/0x410 kernel/locking/lockdep.c:5754
__mutex_lock_common kernel/locking/mutex.c:603 [inline]
__mutex_lock+0x129/0xcc0 kernel/locking/mutex.c:747
hfs_extend_file+0xdb/0x1220 fs/hfs/extent.c:397
hfs_bmap_reserve+0x107/0x430 fs/hfs/btree.c:234
__hfs_ext_write_extent+0x1fa/0x470 fs/hfs/extent.c:121
__hfs_ext_cache_extent+0x6b/0x9b0 fs/hfs/extent.c:174
hfs_ext_read_extent fs/hfs/extent.c:202 [inline]
hfs_extend_file+0x317/0x1220 fs/hfs/extent.c:401
hfs_get_block+0x3d8/0xbd0 fs/hfs/extent.c:353
__block_write_begin_int+0x566/0x1ad0 fs/buffer.c:2124
__block_write_begin fs/buffer.c:2173 [inline]
block_write_begin+0x9a/0x1e0 fs/buffer.c:2234
cont_write_begin+0x5c8/0x7e0 fs/buffer.c:2591
hfs_write_begin+0x8b/0xd0 fs/hfs/inode.c:58
cont_expand_zero fs/buffer.c:2518 [inline]
cont_write_begin+0x2ad/0x7e0 fs/buffer.c:2581
hfs_write_begin+0x8b/0xd0 fs/hfs/inode.c:58
generic_perform_write+0x2fb/0x5b0 mm/filemap.c:4016
generic_file_write_iter+0xaf/0x2e0 mm/filemap.c:4137
call_write_iter include/linux/fs.h:2018 [inline]
new_sync_write fs/read_write.c:491 [inline]
vfs_write+0x43b/0x940 fs/read_write.c:584
ksys_pwrite64 fs/read_write.c:699 [inline]
__do_sys_pwrite64 fs/read_write.c:709 [inline]
__se_sys_pwrite64 fs/read_write.c:706 [inline]
__x64_sys_pwrite64+0x195/0x220 fs/read_write.c:706
do_syscall_x64 arch/x86/entry/common.c:51 [inline]
do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:81
entry_SYSCALL_64_after_hwframe+0x68/0xd2
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(&tree->tree_lock/1);
lock(&HFS_I(tree->inode)->extents_lock);
lock(&tree->tree_lock/1);
lock(&HFS_I(tree->inode)->extents_lock);
*** DEADLOCK ***
4 locks held by syz.2.832/8779:
#0: ffff8880262da418 (sb_writers#28){.+.+}-{0:0}, at: vfs_write+0x20e/0x940 fs/read_write.c:580
#1: ffff88805a719cb8 (&sb->s_type->i_mutex_key#35){+.+.}-{3:3}, at: inode_lock include/linux/fs.h:804 [inline]
#1: ffff88805a719cb8 (&sb->s_type->i_mutex_key#35){+.+.}-{3:3}, at: generic_file_write_iter+0x83/0x2e0 mm/filemap.c:4134
#2: ffff88805a719af8 (&HFS_I(inode)->extents_lock){+.+.}-{3:3}, at: hfs_extend_file+0xdb/0x1220 fs/hfs/extent.c:397
#3: ffff8880262dc0b0 (&tree->tree_lock/1){+.+.}-{3:3}, at: hfs_find_init+0x15f/0x1d0 fs/hfs/bfind.c:-1
stack backtrace:
CPU: 0 PID: 8779 Comm: syz.2.832 Not tainted 6.6.102-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
Call Trace:
dump_stack_lvl+0x16c/0x230 lib/dump_stack.c:106
check_noncircular+0x2bd/0x3c0 kernel/locking/lockdep.c:2187
check_prev_add kernel/locking/lockdep.c:3134 [inline]
check_prevs_add kernel/locking/lockdep.c:3253 [inline]
validate_chain kernel/locking/lockdep.c:3869 [inline]
__lock_acquire+0x2ddb/0x7c80 kernel/locking/lockdep.c:5137
lock_acquire+0x197/0x410 kernel/locking/lockdep.c:5754
__mutex_lock_common kernel/locking/mutex.c:603 [inline]
__mutex_lock+0x129/0xcc0 kernel/locking/mutex.c:747
hfs_extend_file+0xdb/0x1220 fs/hfs/extent.c:397
hfs_bmap_reserve+0x107/0x430 fs/hfs/btree.c:234
__hfs_ext_write_extent+0x1fa/0x470 fs/hfs/extent.c:121
__hfs_ext_cache_extent+0x6b/0x9b0 fs/hfs/extent.c:174
hfs_ext_read_extent fs/hfs/extent.c:202 [inline]
hfs_extend_file+0x317/0x1220 fs/hfs/extent.c:401
hfs_get_block+0x3d8/0xbd0 fs/hfs/extent.c:353
__block_write_begin_int+0x566/0x1ad0 fs/buffer.c:2124
__block_write_begin fs/buffer.c:2173 [inline]
block_write_begin+0x9a/0x1e0 fs/buffer.c:2234
cont_write_begin+0x5c8/0x7e0 fs/buffer.c:2591
hfs_write_begin+0x8b/0xd0 fs/hfs/inode.c:58
cont_expand_zero fs/buffer.c:2518 [inline]
cont_write_begin+0x2ad/0x7e0 fs/buffer.c:2581
hfs_write_begin+0x8b/0xd0 fs/hfs/inode.c:58
generic_perform_write+0x2fb/0x5b0 mm/filemap.c:4016
generic_file_write_iter+0xaf/0x2e0 mm/filemap.c:4137
call_write_iter include/linux/fs.h:2018 [inline]
new_sync_write fs/read_write.c:491 [inline]
vfs_write+0x43b/0x940 fs/read_write.c:584
ksys_pwrite64 fs/read_write.c:699 [inline]
__do_sys_pwrite64 fs/read_write.c:709 [inline]
__se_sys_pwrite64 fs/read_write.c:706 [inline]
__x64_sys_pwrite64+0x195/0x220 fs/read_write.c:706
do_syscall_x64 arch/x86/entry/common.c:51 [inline]
do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:81
entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7f2644f8ebe9
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
RSP: 002b:00007f2645e90038 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
RAX: ffffffffffffffda RBX: 00007f26451b5fa0 RCX: 00007f2644f8ebe9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 00007f2645011e19 R08: 0000000000000000 R09: 0000000000000000
R10: 000000000004fed0 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f26451b6038 R14: 00007f26451b5fa0 R15: 00007ffc2d90cce8
hfs: new node 0 already hashed?
------------[ cut here ]------------
WARNING: CPU: 1 PID: 8779 at fs/hfs/bnode.c:428 hfs_bnode_create+0x3b9/0x440 fs/hfs/bnode.c:427
Modules linked in:
CPU: 1 PID: 8779 Comm: syz.2.832 Not tainted 6.6.102-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
RIP: 0010:hfs_bnode_create+0x3b9/0x440 fs/hfs/bnode.c:428
Code: c4 c0 8a 89 ee e8 77 55 0c 08 e9 73 fd ff ff e8 4d e5 2f ff 4c 89 ef e8 75 49 21 08 48 c7 c7 a0 c4 c0 8a 89 ee e8 57 55 0c 08 <0f> 0b eb b7 44 89 f1 80 e1 07 80 c1 03 38 c1 0f 8c 7f fc ff ff 4c
RSP: 0018:ffffc90004dcee78 EFLAGS: 00010246
RAX: 000000000000001f RBX: ffff8880262dc000 RCX: 275c0bc7fa4f3e00
RDX: ffffc9000d5a4000 RSI: 000000000007ffff RDI: 0000000000080000
RBP: 0000000000000000 R08: ffffffff8e4a882f R09: 1ffffffff1c95105
R10: dffffc0000000000 R11: fffffbfff1c95106 R12: 0000000000000000
R13: ffff8880262dc0e0 R14: ffff88802d5cc600 R15: dffffc0000000000
FS: 00007f2645e906c0(0000) GS:ffff8880b8f00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000110c28299a CR3: 0000000031ff8000 CR4: 00000000003506e0
Call Trace:
hfs_bmap_alloc+0x53b/0x5c0 fs/hfs/btree.c:291
hfs_btree_inc_height+0xf7/0xac0 fs/hfs/brec.c:471
hfs_brec_insert+0x742/0xbd0 fs/hfs/brec.c:148
__hfs_ext_write_extent+0x2a1/0x470 fs/hfs/extent.c:124
__hfs_ext_cache_extent+0x6b/0x9b0 fs/hfs/extent.c:174
hfs_ext_read_extent fs/hfs/extent.c:202 [inline]
hfs_extend_file+0x317/0x1220 fs/hfs/extent.c:401
hfs_get_block+0x3d8/0xbd0 fs/hfs/extent.c:353
__block_write_begin_int+0x566/0x1ad0 fs/buffer.c:2124
__block_write_begin fs/buffer.c:2173 [inline]
block_write_begin+0x9a/0x1e0 fs/buffer.c:2234
cont_write_begin+0x5c8/0x7e0 fs/buffer.c:2591
hfs_write_begin+0x8b/0xd0 fs/hfs/inode.c:58
cont_expand_zero fs/buffer.c:2518 [inline]
cont_write_begin+0x2ad/0x7e0 fs/buffer.c:2581
hfs_write_begin+0x8b/0xd0 fs/hfs/inode.c:58
generic_perform_write+0x2fb/0x5b0 mm/filemap.c:4016
generic_file_write_iter+0xaf/0x2e0 mm/filemap.c:4137
call_write_iter include/linux/fs.h:2018 [inline]
new_sync_write fs/read_write.c:491 [inline]
vfs_write+0x43b/0x940 fs/read_write.c:584
ksys_pwrite64 fs/read_write.c:699 [inline]
__do_sys_pwrite64 fs/read_write.c:709 [inline]
__se_sys_pwrite64 fs/read_write.c:706 [inline]
__x64_sys_pwrite64+0x195/0x220 fs/read_write.c:706
do_syscall_x64 arch/x86/entry/common.c:51 [inline]
do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:81
entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7f2644f8ebe9
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
RSP: 002b:00007f2645e90038 EFLAGS: 00000246 ORIG_RAX: 0000000000000012
RAX: ffffffffffffffda RBX: 00007f26451b5fa0 RCX: 00007f2644f8ebe9
RDX: 0000000000000001 RSI: 00002000000005c0 RDI: 0000000000000004
RBP: 00007f2645011e19 R08: 0000000000000000 R09: 0000000000000000
R10: 000000000004fed0 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f26451b6038 R14: 00007f26451b5fa0 R15: 00007ffc2d90cce8