Re: [syzbot] [exfat?] [ocfs2?] kernel BUG in link_path_walk

Mateusz Guzik
2025-12-04T07:45:21Z

On Thu, Dec 4, 2025 at 2:21 AM syzbot
<syzbot+d222f4b7129379c3d5bc@syzkaller.appspotmail.com> wrote:
>
> Hello,
>
> syzbot has tested the proposed patch but the reproducer is still triggering an issue:
> kernel BUG in link_path_walk
>
> (syz.0.73,6964,1):ocfs2_find_entry_id:420 ERROR: status = -30
> ------------[ cut here ]------------
> kernel BUG at fs/namei.c:2532!

On the commit syzbot is testing on (b2c27842) and with the patch, the
triggered assert is the second one on S_ISDIR:
VFS_BUG_ON(!d_can_lookup(nd->path.dentry));
VFS_BUG_ON(!S_ISDIR(nd->path.dentry->d_inode->i_mode));

d_can_lookup is __d_entry_type(dentry) == DCACHE_DIRECTORY_TYPE;

Or to put it differently, lookup got entered with a bogus state of a
dentry claiming it is a directory, with an inode which is not. Per the
i_mode reported in the opening mail it is a regular file instead.

While I don't see how this can happen, I don't think it is *my* bug
either -- merely nothing else asserted on the 2 things being in
tandem.

syzbot likes to operate on corrupted filesystems, so I'm going to
assume things are going haywire in ocfs2 until proven otherwise.

> Oops: invalid opcode: 0000 [#1] SMP KASAN PTI
> CPU: 1 UID: 0 PID: 6964 Comm: syz.0.73 Not tainted syzkaller #0 PREEMPT(full)
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
> RIP: 0010:link_path_walk+0x1a57/0x1a90 fs/namei.c:2532
> Code: 89 e9 80 e1 07 fe c1 38 c1 0f 8c be fd ff ff 4c 89 ef e8 2c e5 e9 ff e9 b1 fd ff ff e8 62 90 83 ff 90 0f 0b e8 5a 90 83 ff 90 <0f> 0b e8 52 90 83 ff 90 0f 0b e8 4a 90 83 ff 4c 89 ff 48 c7 c6 40
> RSP: 0018:ffffc9000491f8a0 EFLAGS: 00010293
> RAX: ffffffff823e22d6 RBX: dffffc0000000000 RCX: ffff8880250f3d00
> RDX: 0000000000000000 RSI: 0000000000008000 RDI: 0000000000004000
> RBP: ffff888079181120 R08: ffff8880299ef520 R09: ffff88807acd2000
> R10: ffff8880299ef520 R11: ffff88807acd2000 R12: ffffc9000491fc58
> R13: ffffc9000491fc28 R14: 0000000000008000 R15: 0000000000100000
> FS: 00007ff92e2e36c0(0000) GS:ffff888125f49000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000555575344808 CR3: 0000000025c92000 CR4: 00000000003526f0
> Call Trace:
> <TASK>
> path_openat+0x2b3/0x3dd0 fs/namei.c:4787
> do_filp_open+0x1fa/0x410 fs/namei.c:4818
> do_sys_openat2+0x121/0x200 fs/open.c:1430
> do_sys_open fs/open.c:1436 [inline]
> __do_sys_open fs/open.c:1444 [inline]
> __se_sys_open fs/open.c:1440 [inline]
> __x64_sys_open+0x11e/0x150 fs/open.c:1440
> do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
> do_syscall_64+0xfa/0xf80 arch/x86/entry/syscall_64.c:94
> entry_SYSCALL_64_after_hwframe+0x77/0x7f
> RIP: 0033:0x7ff92d38f749
> 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:00007ff92e2e3038 EFLAGS: 00000246 ORIG_RAX: 0000000000000002
> RAX: ffffffffffffffda RBX: 00007ff92d5e5fa0 RCX: 00007ff92d38f749
> RDX: 0000000000000000 RSI: 0000000000145142 RDI: 0000200000000240
> RBP: 00007ff92d413f91 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007ff92d5e6038 R14: 00007ff92d5e5fa0 R15: 00007ffda4bd0278
> </TASK>
> Modules linked in:
> ---[ end trace 0000000000000000 ]---
> RIP: 0010:link_path_walk+0x1a57/0x1a90 fs/namei.c:2532
> Code: 89 e9 80 e1 07 fe c1 38 c1 0f 8c be fd ff ff 4c 89 ef e8 2c e5 e9 ff e9 b1 fd ff ff e8 62 90 83 ff 90 0f 0b e8 5a 90 83 ff 90 <0f> 0b e8 52 90 83 ff 90 0f 0b e8 4a 90 83 ff 4c 89 ff 48 c7 c6 40
> RSP: 0018:ffffc9000491f8a0 EFLAGS: 00010293
> RAX: ffffffff823e22d6 RBX: dffffc0000000000 RCX: ffff8880250f3d00
> RDX: 0000000000000000 RSI: 0000000000008000 RDI: 0000000000004000
> RBP: ffff888079181120 R08: ffff8880299ef520 R09: ffff88807acd2000
> R10: ffff8880299ef520 R11: ffff88807acd2000 R12: ffffc9000491fc58
> R13: ffffc9000491fc28 R14: 0000000000008000 R15: 0000000000100000
> FS: 00007ff92e2e36c0(0000) GS:ffff888125e49000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00007f1310116e9c CR3: 0000000025c92000 CR4: 00000000003526f0
>
>
> Tested on:
>
> commit: b2c27842 Add linux-next specific files for 20251203
> git tree: linux-next
> console output: https://syzkaller.appspot.com/x/log.txt?x=15d7801a580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=caadf525b0ab8d17
> dashboard link: https://syzkaller.appspot.com/bug?extid=d222f4b7129379c3d5bc
> compiler: Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
> patch: https://syzkaller.appspot.com/x/patch.diff?x=1281d4c2580000
>