[syzbot] [ocfs2?] general protection fault in ocfs2_evict_inode

From: syzbot
Date: Mon Oct 14 2024 - 02:17:33 EST


Hello,

syzbot found the following issue on:

HEAD commit: 33ce24234fca Add linux-next specific files for 20241008
git tree: linux-next
console output: https://syzkaller.appspot.com/x/log.txt?x=14148f07980000
kernel config: https://syzkaller.appspot.com/x/.config?x=4750ca93740b938d
dashboard link: https://syzkaller.appspot.com/bug?extid=0058ba2149d0a0c61344
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/ee8dc2df0c57/disk-33ce2423.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/dc473c0fa06e/vmlinux-33ce2423.xz
kernel image: https://storage.googleapis.com/syzbot-assets/4671f1ca2e61/bzImage-33ce2423.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+0058ba2149d0a0c61344@xxxxxxxxxxxxxxxxxxxxxxxxx

ocfs2: Unmounting device (7,4) on (node local)
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000001: 0000 [#1] PREEMPT SMP KASAN PTI
KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
CPU: 1 UID: 0 PID: 11386 Comm: syz.4.712 Not tainted 6.12.0-rc2-next-20241008-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
RIP: 0010:ocfs2_clear_inode fs/ocfs2/inode.c:1208 [inline]
RIP: 0010:ocfs2_evict_inode+0xdd3/0x4680 fs/ocfs2/inode.c:1220
Code: 00 00 4c 89 e0 48 c1 e8 03 42 80 3c 30 00 74 08 4c 89 e7 e8 5f 17 71 fe 4c 01 f3 4d 8b 24 24 49 83 c4 08 4c 89 e0 48 c1 e8 03 <42> 80 3c 30 00 74 08 4c 89 e7 e8 3e 17 71 fe 49 8b 3c 24 49 81 c7
RSP: 0018:ffffc9000349ef00 EFLAGS: 00010202
RAX: 0000000000000001 RBX: fffff52000693df4 RCX: ffff88802db11e00
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc9000349f650 R08: ffffffff838d937e R09: 1ffff1100bf6f616
R10: dffffc0000000000 R11: ffffed100bf6f617 R12: 0000000000000008
R13: 1ffff1100bf6f644 R14: dffffc0000000000 R15: ffff88805fb7b338
FS: 0000000000000000(0000) GS:ffff8880b8700000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000021000000 CR3: 000000002dcfc000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
evict+0x4e8/0x9b0 fs/inode.c:808
__ocfs2_free_slot_info fs/ocfs2/slot_map.c:307 [inline]
ocfs2_free_slot_info+0x94/0x270 fs/ocfs2/slot_map.c:443
ocfs2_delete_osb+0x58/0x180 fs/ocfs2/super.c:2497
ocfs2_dismount_volume+0x594/0x8f0 fs/ocfs2/super.c:1936
generic_shutdown_super+0x139/0x2d0 fs/super.c:642
kill_block_super+0x44/0x90 fs/super.c:1696
deactivate_locked_super+0xc4/0x130 fs/super.c:473
cleanup_mnt+0x41f/0x4b0 fs/namespace.c:1373
task_work_run+0x24f/0x310 kernel/task_work.c:228
exit_task_work include/linux/task_work.h:40 [inline]
do_exit+0xa2f/0x28e0 kernel/exit.c:939
do_group_exit+0x207/0x2c0 kernel/exit.c:1088
get_signal+0x16a3/0x1740 kernel/signal.c:2917
arch_do_signal_or_restart+0x96/0x860 arch/x86/kernel/signal.c:337
exit_to_user_mode_loop kernel/entry/common.c:111 [inline]
exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline]
__syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
syscall_exit_to_user_mode+0xc9/0x370 kernel/entry/common.c:218
do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f581257dff9
Code: Unable to access opcode bytes at 0x7f581257dfcf.
RSP: 002b:00007f5813441038 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
RAX: 0000000000ffecc0 RBX: 00007f5812735f80 RCX: 00007f581257dff9
RDX: 7706c522012798af RSI: 0000000020001340 RDI: 0000000000000005
RBP: 00007f58125f0296 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007f5812735f80 R15: 00007ffd87bff1c8
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:ocfs2_clear_inode fs/ocfs2/inode.c:1208 [inline]
RIP: 0010:ocfs2_evict_inode+0xdd3/0x4680 fs/ocfs2/inode.c:1220
Code: 00 00 4c 89 e0 48 c1 e8 03 42 80 3c 30 00 74 08 4c 89 e7 e8 5f 17 71 fe 4c 01 f3 4d 8b 24 24 49 83 c4 08 4c 89 e0 48 c1 e8 03 <42> 80 3c 30 00 74 08 4c 89 e7 e8 3e 17 71 fe 49 8b 3c 24 49 81 c7
RSP: 0018:ffffc9000349ef00 EFLAGS: 00010202
RAX: 0000000000000001 RBX: fffff52000693df4 RCX: ffff88802db11e00
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc9000349f650 R08: ffffffff838d937e R09: 1ffff1100bf6f616
R10: dffffc0000000000 R11: ffffed100bf6f617 R12: 0000000000000008
R13: 1ffff1100bf6f644 R14: dffffc0000000000 R15: ffff88805fb7b338
FS: 0000000000000000(0000) GS:ffff8880b8700000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000021000000 CR3: 000000002dcfc000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
0: 00 00 add %al,(%rax)
2: 4c 89 e0 mov %r12,%rax
5: 48 c1 e8 03 shr $0x3,%rax
9: 42 80 3c 30 00 cmpb $0x0,(%rax,%r14,1)
e: 74 08 je 0x18
10: 4c 89 e7 mov %r12,%rdi
13: e8 5f 17 71 fe call 0xfe711777
18: 4c 01 f3 add %r14,%rbx
1b: 4d 8b 24 24 mov (%r12),%r12
1f: 49 83 c4 08 add $0x8,%r12
23: 4c 89 e0 mov %r12,%rax
26: 48 c1 e8 03 shr $0x3,%rax
* 2a: 42 80 3c 30 00 cmpb $0x0,(%rax,%r14,1) <-- trapping instruction
2f: 74 08 je 0x39
31: 4c 89 e7 mov %r12,%rdi
34: e8 3e 17 71 fe call 0xfe711777
39: 49 8b 3c 24 mov (%r12),%rdi
3d: 49 rex.WB
3e: 81 .byte 0x81
3f: c7 .byte 0xc7


---
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 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