syzbot


WARNING: bad unlock balance in ocfs2_inode_cache_io_unlock

Status: upstream: reported on 2024/09/17 02:11
Reported-by: syzbot+04978ef8a2b125297d95@syzkaller.appspotmail.com
First crash: 4d01h, last: 4d01h
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 WARNING: bad unlock balance in ocfs2_inode_cache_io_unlock origin:upstream C 4 3d22h 5d04h 0/3 upstream: reported C repro on 2024/09/15 22:26
upstream WARNING: bad unlock balance in ocfs2_inode_cache_io_unlock ocfs2 C 6 20h00m 9h57m 0/28 upstream: reported C repro on 2024/09/20 17:22

Sample crash report:
ocfs2: Mounting device (7,1) on (node local, slot 0) with ordered data mode.
(syz.1.455,5761,1):ocfs2_read_blocks:240 ERROR: status = -12
=====================================
WARNING: bad unlock balance detected!
6.1.110-syzkaller #0 Not tainted
-------------------------------------
syz.1.455/5761 is trying to release lock (&oi->ip_io_mutex) at:
[<ffff800009ee7c74>] ocfs2_inode_cache_io_unlock+0x20/0x30 fs/ocfs2/inode.c:1648
but there are no more locks to release!

other info that might help us debug this:
8 locks held by syz.1.455/5761:
 #0: ffff0000f696c460 (sb_writers#16){.+.+}-{0:0}, at: mnt_want_write+0x44/0x9c fs/namespace.c:393
 #1: ffff0000e14ca648 (&type->i_mutex_dir_key#13/1){+.+.}-{3:3}, at: inode_lock_nested include/linux/fs.h:793 [inline]
 #1: ffff0000e14ca648 (&type->i_mutex_dir_key#13/1){+.+.}-{3:3}, at: filename_create+0x204/0x468 fs/namei.c:3878
 #2: ffff0000e14e6d88 (&ocfs2_sysfile_lock_key[args->fi_sysfile_type]#2){+.+.}-{3:3}, at: inode_lock include/linux/fs.h:758 [inline]
 #2: ffff0000e14e6d88 (&ocfs2_sysfile_lock_key[args->fi_sysfile_type]#2){+.+.}-{3:3}, at: ocfs2_reserve_suballoc_bits+0x164/0x4428 fs/ocfs2/suballoc.c:782
 #3: ffff0000e14cd108 (&ocfs2_sysfile_lock_key[args->fi_sysfile_type]#3){+.+.}-{3:3}, at: inode_lock include/linux/fs.h:758 [inline]
 #3: ffff0000e14cd108 (&ocfs2_sysfile_lock_key[args->fi_sysfile_type]#3){+.+.}-{3:3}, at: ocfs2_reserve_suballoc_bits+0x164/0x4428 fs/ocfs2/suballoc.c:782
 #4: ffff0000e14e2648 (&ocfs2_sysfile_lock_key[args->fi_sysfile_type]#4){+.+.}-{3:3}, at: inode_lock include/linux/fs.h:758 [inline]
 #4: ffff0000e14e2648 (&ocfs2_sysfile_lock_key[args->fi_sysfile_type]#4){+.+.}-{3:3}, at: ocfs2_reserve_local_alloc_bits+0xfc/0x25dc fs/ocfs2/localalloc.c:635
 #5: ffff0000f696c650 (sb_internal#4){.+.+}-{0:0}, at: ocfs2_mknod+0xe64/0x2560 fs/ocfs2/namei.c:359
 #6: ffff0000d44d20e8 (&journal->j_trans_barrier){.+.+}-{3:3}, at: ocfs2_start_trans+0x3dc/0x73c fs/ocfs2/journal.c:352
 #7: ffff0000cd9b2990 (jbd2_handle){++++}-{0:0}, at: start_this_handle+0x1118/0x13ac fs/jbd2/transaction.c:461

stack backtrace:
CPU: 1 PID: 5761 Comm: syz.1.455 Not tainted 6.1.110-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/06/2024
Call trace:
 dump_backtrace+0x1c8/0x1f4 arch/arm64/kernel/stacktrace.c:158
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:165
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x108/0x170 lib/dump_stack.c:106
 dump_stack+0x1c/0x58 lib/dump_stack.c:113
 print_unlock_imbalance_bug+0x250/0x2a4 kernel/locking/lockdep.c:5102
 lock_release+0x4dc/0xa50 kernel/locking/lockdep.c:5682
 __mutex_unlock_slowpath+0xe0/0x6cc kernel/locking/mutex.c:907
 mutex_unlock+0x24/0x30 kernel/locking/mutex.c:543
 ocfs2_inode_cache_io_unlock+0x20/0x30 fs/ocfs2/inode.c:1648
 ocfs2_metadata_cache_io_unlock+0x6c/0x90 fs/ocfs2/uptodate.c:95
 ocfs2_read_blocks+0x11d0/0x17e8 fs/ocfs2/buffer_head_io.c:394
 ocfs2_read_block fs/ocfs2/buffer_head_io.h:52 [inline]
 ocfs2_read_group_descriptor fs/ocfs2/suballoc.c:299 [inline]
 ocfs2_search_chain+0x28c/0x239c fs/ocfs2/suballoc.c:1757
 ocfs2_claim_suballoc_bits+0xd38/0x1e1c fs/ocfs2/suballoc.c:1930
 ocfs2_claim_new_inode+0x2d0/0x798 fs/ocfs2/suballoc.c:2210
 ocfs2_mknod_locked+0x134/0x2e4 fs/ocfs2/namei.c:633
 ocfs2_mknod+0x10ac/0x2560 fs/ocfs2/namei.c:379
 vfs_mknod+0x3c8/0x448 fs/namei.c:3987
 do_mknodat+0x3f8/0x610
 __do_sys_mknodat fs/namei.c:4065 [inline]
 __se_sys_mknodat fs/namei.c:4062 [inline]
 __arm64_sys_mknodat+0xb0/0xcc fs/namei.c:4062
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x2c0 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:140
 do_el0_svc+0x64/0x218 arch/arm64/kernel/syscall.c:204
 el0_svc+0x58/0x168 arch/arm64/kernel/entry-common.c:637
 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585
(syz.1.455,5761,1):ocfs2_search_chain:1761 ERROR: status = -12
(syz.1.455,5761,1):ocfs2_search_chain:1871 ERROR: status = -12
(syz.1.455,5761,1):ocfs2_claim_suballoc_bits:1940 ERROR: status = -12
(syz.1.455,5761,1):ocfs2_claim_suballoc_bits:1983 ERROR: status = -12
(syz.1.455,5761,1):ocfs2_claim_new_inode:2216 ERROR: status = -12
(syz.1.455,5761,1):ocfs2_claim_new_inode:2231 ERROR: status = -12
(syz.1.455,5761,1):ocfs2_mknod_locked:637 ERROR: status = -12
(syz.1.455,5761,1):ocfs2_mknod:383 ERROR: status = -12
(syz.1.455,5761,1):ocfs2_mknod:500 ERROR: status = -12

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/09/17 02:10 linux-6.1.y 5f55cad62cc9 c673ca06 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 WARNING: bad unlock balance in ocfs2_inode_cache_io_unlock
2024/09/17 02:10 linux-6.1.y 5f55cad62cc9 c673ca06 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 WARNING: bad unlock balance in ocfs2_inode_cache_io_unlock
* Struck through repros no longer work on HEAD.