Hello,
syzbot has tested the proposed patch but the reproducer is still triggering an issue:
general protection fault in lmLogSync
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000006: 0000 [#1] SMP KASAN PTI
KASAN: null-ptr-deref in range [0x0000000000000030-0x0000000000000037]
CPU: 0 UID: 0 PID: 6327 Comm: syz-executor Not tainted syzkaller #0 PREEMPT_{RT,(full)}
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2026
RIP: 0010:write_special_inodes fs/jfs/jfs_logmgr.c:201 [inline]
RIP: 0010:lmLogSync+0x207/0x9f0 fs/jfs/jfs_logmgr.c:931
Code: 51 71 fe 4d 8d 7e d8 4c 89 f8 48 c1 e8 03 80 3c 18 00 74 08 4c 89 ff e8 d7 5a d7 fe 4d 8b 3f 49 83 c7 30 4c 89 f8 48 c1 e8 03 <80> 3c 18 00 74 08 4c 89 ff e8 bb 5a d7 fe 49 8b 3f e8 33 ca ab fe
RSP: 0018:ffffc90004297b60 EFLAGS: 00010206
RAX: 0000000000000006 RBX: dffffc0000000000 RCX: ffff888031588000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc90004297c68 R08: 0000000000000000 R09: 0000000000000000
R10: ffffc90004297948 R11: fffff52000852f56 R12: 0000000000000000
R13: ffff88803d129800 R14: ffff88803c486438 R15: 0000000000000030
FS: 00005555786ee500(0000) GS:ffff888126343000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fc2699371d4 CR3: 00000000415b6000 CR4: 00000000003526f0
Call Trace:
<TASK>
jfs_syncpt+0x7b/0x90 fs/jfs/jfs_logmgr.c:1035
jfs_sync_fs+0x87/0xa0 fs/jfs/super.c:650
sync_filesystem+0x1ce/0x250 fs/sync.c:66
generic_shutdown_super+0x77/0x2d0 fs/super.c:625
kill_block_super+0x44/0x90 fs/super.c:1725
deactivate_locked_super+0xbc/0x130 fs/super.c:476
cleanup_mnt+0x437/0x4d0 fs/namespace.c:1312
task_work_run+0x1d9/0x270 kernel/task_work.c:233
resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
__exit_to_user_mode_loop kernel/entry/common.c:67 [inline]
exit_to_user_mode_loop+0xed/0x480 kernel/entry/common.c:98
__exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]
syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]
syscall_exit_to_user_mode include/linux/entry-common.h:325 [inline]
do_syscall_64+0x32d/0xf80 arch/x86/entry/syscall_64.c:100
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fe079a4d897
Code: a2 c7 05 5c ee 24 00 00 00 00 00 eb 96 e8 e1 12 00 00 90 31 f6 e9 09 00 00 00 66 0f 1f 84 00 00 00 00 00 b8 a6 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 01 c3 48 c7 c2 e8 ff ff ff f7 d8 64 89 02 b8
RSP: 002b:00007fff6547efb8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6
RAX: 0000000000000000 RBX: 00007fe079ae1ef0 RCX: 00007fe079a4d897
RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007fff6547f070
RBP: 00007fff6547f070 R08: 00007fff65480070 R09: 00000000ffffffff
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fff65480100
R13: 00007fe079ae1ef0 R14: 0000000000026699 R15: 00007fff65480140
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:write_special_inodes fs/jfs/jfs_logmgr.c:201 [inline]
RIP: 0010:lmLogSync+0x207/0x9f0 fs/jfs/jfs_logmgr.c:931
Code: 51 71 fe 4d 8d 7e d8 4c 89 f8 48 c1 e8 03 80 3c 18 00 74 08 4c 89 ff e8 d7 5a d7 fe 4d 8b 3f 49 83 c7 30 4c 89 f8 48 c1 e8 03 <80> 3c 18 00 74 08 4c 89 ff e8 bb 5a d7 fe 49 8b 3f e8 33 ca ab fe
RSP: 0018:ffffc90004297b60 EFLAGS: 00010206
RAX: 0000000000000006 RBX: dffffc0000000000 RCX: ffff888031588000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc90004297c68 R08: 0000000000000000 R09: 0000000000000000
R10: ffffc90004297948 R11: fffff52000852f56 R12: 0000000000000000
R13: ffff88803d129800 R14: ffff88803c486438 R15: 0000000000000030
FS: 00005555786ee500(0000) GS:ffff888126343000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fc2699371d4 CR3: 00000000415b6000 CR4: 00000000003526f0
----------------
Code disassembly (best guess):
0: 51 push %rcx
1: 71 fe jno 0x1
3: 4d 8d 7e d8 lea -0x28(%r14),%r15
7: 4c 89 f8 mov %r15,%rax
a: 48 c1 e8 03 shr $0x3,%rax
e: 80 3c 18 00 cmpb $0x0,(%rax,%rbx,1)
12: 74 08 je 0x1c
14: 4c 89 ff mov %r15,%rdi
17: e8 d7 5a d7 fe call 0xfed75af3
1c: 4d 8b 3f mov (%r15),%r15
1f: 49 83 c7 30 add $0x30,%r15
23: 4c 89 f8 mov %r15,%rax
26: 48 c1 e8 03 shr $0x3,%rax
* 2a: 80 3c 18 00 cmpb $0x0,(%rax,%rbx,1) <-- trapping instruction
2e: 74 08 je 0x38
30: 4c 89 ff mov %r15,%rdi
33: e8 bb 5a d7 fe call 0xfed75af3
38: 49 8b 3f mov (%r15),%rdi
3b: e8 33 ca ab fe call 0xfeabca73
Tested on:
commit: d9d32e5b Merge tag 'ata-7.0-rc2' of git://git.kernel.o..
git tree: upstream
console output:
https://syzkaller.appspot.com/x/log.txt?x=16d91de6580000
kernel config:
https://syzkaller.appspot.com/x/.config?x=70fe0401f305d8d4
dashboard link:
https://syzkaller.appspot.com/bug?extid=e14b1036481911ae4d77
compiler: Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
patch:
https://syzkaller.appspot.com/x/patch.diff?x=15a37c4a580000