[syzbot] [ocfs2?] WARNING: bad unlock balance in ocfs2_inode_cache_io_unlock

5 views
Skip to first unread message

syzbot

unread,
Sep 20, 2024, 1:22:22 PMSep 20
to jl...@evilplan.org, jose...@linux.alibaba.com, linux-...@vger.kernel.org, ma...@fasheh.com, ocfs2...@lists.linux.dev, syzkall...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 5f5673607153 Merge branch 'for-next/core' into for-kernelci
git tree: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=1506563b980000
kernel config: https://syzkaller.appspot.com/x/.config?x=dedbcb1ff4387972
dashboard link: https://syzkaller.appspot.com/bug?extid=0e4e71041c9609d922a2
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
userspace arch: arm64
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1418718b980000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1306563b980000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/40172aed5414/disk-5f567360.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/58372f305e9d/vmlinux-5f567360.xz
kernel image: https://storage.googleapis.com/syzbot-assets/d2aae6fa798f/Image-5f567360.gz.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/09397442581f/mount_0.gz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+0e4e71...@syzkaller.appspotmail.com

option from the mount to silence this warning.
=======================================================
(syz-executor347,6405,1):ocfs2_read_blocks:240 ERROR: status = -12
=====================================
WARNING: bad unlock balance detected!
6.11.0-rc7-syzkaller-g5f5673607153 #0 Not tainted
-------------------------------------
syz-executor347/6405 is trying to release lock (&oi->ip_io_mutex) at:
[<ffff80008201e0dc>] ocfs2_inode_cache_io_unlock+0x20/0x30 fs/ocfs2/inode.c:1650
but there are no more locks to release!

other info that might help us debug this:
1 lock held by syz-executor347/6405:
#0: ffff0000c26140e0 (&type->s_umount_key#43/1){+.+.}-{3:3}, at: alloc_super+0x1b0/0x83c fs/super.c:344

stack backtrace:
CPU: 1 UID: 0 PID: 6405 Comm: syz-executor347 Not tainted 6.11.0-rc7-syzkaller-g5f5673607153 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/06/2024
Call trace:
dump_backtrace+0x1b8/0x1e4 arch/arm64/kernel/stacktrace.c:319
show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:326
__dump_stack lib/dump_stack.c:93 [inline]
dump_stack_lvl+0xe4/0x150 lib/dump_stack.c:119
dump_stack+0x1c/0x28 lib/dump_stack.c:128
print_unlock_imbalance_bug+0x250/0x2a4 kernel/locking/lockdep.c:5199
__lock_release kernel/locking/lockdep.c:5436 [inline]
lock_release+0x4ec/0x9e8 kernel/locking/lockdep.c:5780
__mutex_unlock_slowpath+0xe0/0x6b4 kernel/locking/mutex.c:912
mutex_unlock+0x18/0x24 kernel/locking/mutex.c:548
ocfs2_inode_cache_io_unlock+0x20/0x30 fs/ocfs2/inode.c:1650
ocfs2_metadata_cache_io_unlock+0x6c/0x90 fs/ocfs2/uptodate.c:95
ocfs2_read_blocks+0x1164/0x1638 fs/ocfs2/buffer_head_io.c:394
ocfs2_map_slot_buffers fs/ocfs2/slot_map.c:385 [inline]
ocfs2_init_slot_info+0x904/0x1214 fs/ocfs2/slot_map.c:424
ocfs2_initialize_super fs/ocfs2/super.c:2274 [inline]
ocfs2_fill_super+0x2668/0x4740 fs/ocfs2/super.c:994
mount_bdev+0x1d4/0x2a0 fs/super.c:1679
ocfs2_mount+0x44/0x58 fs/ocfs2/super.c:1188
legacy_get_tree+0xd4/0x16c fs/fs_context.c:662
vfs_get_tree+0x90/0x28c fs/super.c:1800
do_new_mount+0x278/0x900 fs/namespace.c:3472
path_mount+0x590/0xe04 fs/namespace.c:3799
do_mount fs/namespace.c:3812 [inline]
__do_sys_mount fs/namespace.c:4020 [inline]
__se_sys_mount fs/namespace.c:3997 [inline]
__arm64_sys_mount+0x45c/0x5a8 fs/namespace.c:3997
__invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:49
el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:132
do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151
el0_svc+0x54/0x168 arch/arm64/kernel/entry-common.c:712
el0t_64_sync_handler+0x84/0xfc arch/arm64/kernel/entry-common.c:730
el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:598
(syz-executor347,6405,1):ocfs2_map_slot_buffers:388 ERROR: status = -12
(syz-executor347,6405,1):ocfs2_init_slot_info:426 ERROR: status = -12
(syz-executor347,6405,1):ocfs2_initialize_super:2276 ERROR: status = -12
(syz-executor347,6405,0):ocfs2_fill_super:1178 ERROR: status = -12


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

Edward Adam Davis

unread,
Sep 20, 2024, 9:54:37 PMSep 20
to syzbot+0e4e71...@syzkaller.appspotmail.com, jl...@evilplan.org, jose...@linux.alibaba.com, linux-...@vger.kernel.org, ma...@fasheh.com, ocfs2...@lists.linux.dev, syzkall...@googlegroups.com
remove excess ocfs2_metadata_cache_io_unlock(ci)

#syz test

diff --git a/fs/ocfs2/buffer_head_io.c b/fs/ocfs2/buffer_head_io.c
index cdb9b9bdea1f..e62c7e1de4eb 100644
--- a/fs/ocfs2/buffer_head_io.c
+++ b/fs/ocfs2/buffer_head_io.c
@@ -235,7 +235,6 @@ int ocfs2_read_blocks(struct ocfs2_caching_info *ci, u64 block, int nr,
if (bhs[i] == NULL) {
bhs[i] = sb_getblk(sb, block++);
if (bhs[i] == NULL) {
- ocfs2_metadata_cache_io_unlock(ci);
status = -ENOMEM;
mlog_errno(status);
/* Don't forget to put previous bh! */

syzbot

unread,
Sep 20, 2024, 10:28:04 PMSep 20
to ead...@qq.com, jl...@evilplan.org, jose...@linux.alibaba.com, linux-...@vger.kernel.org, ma...@fasheh.com, ocfs2...@lists.linux.dev, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch and the reproducer did not trigger any issue:

Reported-by: syzbot+0e4e71...@syzkaller.appspotmail.com
Tested-by: syzbot+0e4e71...@syzkaller.appspotmail.com

Tested on:

commit: 5f567360 Merge branch 'for-next/core' into for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=1210ff00580000
kernel config: https://syzkaller.appspot.com/x/.config?x=dedbcb1ff4387972
dashboard link: https://syzkaller.appspot.com/bug?extid=0e4e71041c9609d922a2
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
userspace arch: arm64
patch: https://syzkaller.appspot.com/x/patch.diff?x=107fcca9980000

Note: testing is done by a robot and is best-effort only.
Reply all
Reply to author
Forward
0 new messages