[syzbot] [ext4?] WARNING: locking bug in ext4_xattr_inode_iget (2)
From: syzbot
Date: Sun Mar 31 2024 - 10:03:52 EST
Hello,
syzbot found the following issue on:
HEAD commit: 707081b61156 Merge branch 'for-next/core', remote-tracking..
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=10a6d421180000
kernel config: https://syzkaller.appspot.com/x/.config?x=caeac3f3565b057a
dashboard link: https://syzkaller.appspot.com/bug?extid=c2275f11e063b8f99825
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=155b2029180000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=129bead9180000
Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/6cad68bf7532/disk-707081b6.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/1a27e5400778/vmlinux-707081b6.xz
kernel image: https://storage.googleapis.com/syzbot-assets/67dfc53755d0/Image-707081b6.gz.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/8e035569ef03/mount_1.gz
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+c2275f11e063b8f99825@xxxxxxxxxxxxxxxxxxxxxxxxx
------------[ cut here ]------------
Looking for class "&ea_inode->i_rwsem" with key ext4_fs_type, but found a different class "&sb->s_type->i_mutex_key" with the same key
WARNING: CPU: 0 PID: 9266 at kernel/locking/lockdep.c:935 look_up_lock_class+0xec/0x158 kernel/locking/lockdep.c:932
Modules linked in:
CPU: 0 PID: 9266 Comm: syz-executor362 Not tainted 6.8.0-rc7-syzkaller-g707081b61156 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/29/2024
pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : look_up_lock_class+0xec/0x158 kernel/locking/lockdep.c:932
lr : look_up_lock_class+0xec/0x158 kernel/locking/lockdep.c:932
sp : ffff80009cd170e0
x29: ffff80009cd170e0 x28: dfff800000000000 x27: ffff7000139a2ea0
x26: ffff80009341f300 x25: ffff80009341f000 x24: 0000000000000000
x23: ffff7000139a2e58 x22: 0000000000000000 x21: ffff80008f027b98
x20: ffff0000de282200 x19: ffff800092024890 x18: 1ffff000139a2e5c
x17: 0000000000000000 x16: ffff80008ad6b09c x15: 0000000000000001
x14: 1fffe00036800002 x13: 0000000000000000 x12: 0000000000000000
x11: 0000000000000002 x10: 0000000000ff0100 x9 : a911bda9a52fff00
x8 : a911bda9a52fff00 x7 : 0000000000000001 x6 : 0000000000000001
x5 : ffff80009cd169d8 x4 : ffff80008ed822c0 x3 : ffff8000805ba130
x2 : 0000000000000001 x1 : 0000000100000000 x0 : 0000000000000000
Call trace:
look_up_lock_class+0xec/0x158 kernel/locking/lockdep.c:932
register_lock_class+0x8c/0x6ac kernel/locking/lockdep.c:1284
__lock_acquire+0x184/0x763c kernel/locking/lockdep.c:5014
lock_acquire+0x23c/0x71c kernel/locking/lockdep.c:5754
down_write+0x50/0xc0 kernel/locking/rwsem.c:1579
inode_lock include/linux/fs.h:804 [inline]
ext4_xattr_inode_iget+0x344/0x4dc fs/ext4/xattr.c:461
ext4_xattr_inode_get+0x12c/0x37c fs/ext4/xattr.c:535
ext4_xattr_block_get fs/ext4/xattr.c:613 [inline]
ext4_xattr_get+0x5d0/0x6f4 fs/ext4/xattr.c:714
ext4_xattr_trusted_get+0x40/0x54 fs/ext4/xattr_trusted.c:27
__vfs_getxattr+0x394/0x3c0 fs/xattr.c:424
vfs_getxattr+0x268/0x2c4 fs/xattr.c:457
do_getxattr+0x1e4/0x480 fs/xattr.c:739
getxattr fs/xattr.c:772 [inline]
path_getxattr+0x29c/0x388 fs/xattr.c:788
__do_sys_lgetxattr fs/xattr.c:806 [inline]
__se_sys_lgetxattr fs/xattr.c:803 [inline]
__arm64_sys_lgetxattr+0xa0/0xb8 fs/xattr.c:803
__invoke_syscall arch/arm64/kernel/syscall.c:34 [inline]
invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:48
el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:133
do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:152
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
irq event stamp: 57
hardirqs last enabled at (57): [<ffff8000809fe3d0>] kasan_quarantine_put+0x1a0/0x1c8 mm/kasan/quarantine.c:234
hardirqs last disabled at (56): [<ffff8000809fe268>] kasan_quarantine_put+0x38/0x1c8 mm/kasan/quarantine.c:207
softirqs last enabled at (8): [<ffff80008003165c>] local_bh_enable+0x10/0x34 include/linux/bottom_half.h:32
softirqs last disabled at (6): [<ffff800080031628>] local_bh_disable+0x10/0x34 include/linux/bottom_half.h:19
---[ end trace 0000000000000000 ]---
======================================================
---
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 syzkaller@xxxxxxxxxxxxxxxx.
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