syzbot has found a reproducer for the following issue on:
HEAD commit: 015e94d0 Linux 4.19.146
git tree: linux-4.19.y
console output:
https://syzkaller.appspot.com/x/log.txt?x=1134aac3900000
syz repro:
https://syzkaller.appspot.com/x/repro.syz?x=16d65707900000
C reproducer:
https://syzkaller.appspot.com/x/repro.c?x=10aa5d1d900000
REISERFS (device loop4): using ordered data mode
REISERFS (device loop0): using ordered data mode
reiserfs: using flush barriers
------------[ cut here ]------------
reiserfs: using flush barriers
kernel BUG at fs/reiserfs/journal.c:3643!
REISERFS (device loop0): journal params: device loop0, size 15748, journal first block 18, max trans len 1024, max batch 900, max commit age 0, max trans age 30
reiserfs: using flush barriers
REISERFS (device loop0): checking transaction log (loop0)
reiserfs: using flush barriers
invalid opcode: 0000 [#1] PREEMPT SMP KASAN
REISERFS (device loop2): journal params: device loop2, size 15748, journal first block 18, max trans len 1024, max batch 900, max commit age 0, max trans age 30
CPU: 0 PID: 6548 Comm: syz-executor072 Not tainted 4.19.146-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:check_journal_end fs/reiserfs/journal.c:3643 [inline]
RIP: 0010:do_journal_end+0x3724/0x48c0 fs/reiserfs/journal.c:4040
Code: 42 ff 84 ff 0f 0b 48 c7 c7 a0 af 9f 89 e8 44 27 c9 01 e8 2f ff 84 ff 0f 0b 48 c7 c7 60 af 9f 89 e8 31 27 c9 01 e8 1c ff 84 ff <0f> 0b 48 c7 c7 20 af 9f 89 e8 1e 27 c9 01 e8 09 ff 84 ff 0f 0b 48
REISERFS (device loop2): checking transaction log (loop2)
RSP: 0018:ffff88809de37990 EFLAGS: 00010293
RAX: ffff8880a3d405c0 RBX: ffffc900068e4000 RCX: ffffffff81ec92c3
RDX: 0000000000000000 RSI: ffffffff81ecc3c4 RDI: 0000000000000007
RBP: ffff8880886082c0 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000007 R11: 0000000000000002 R12: 0000000000000000
R13: ffffc900068e4058 R14: ffff88809de37bd0 R15: 0000000000000000
FS: 00007fd405c23700(0000) GS:ffff8880ae200000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fbf115c6000 CR3: 00000000968c1000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
REISERFS (device loop4): journal params: device loop4, size 15748, journal first block 18, max trans len 1024, max batch 900, max commit age 0, max trans age 30
journal_end+0x277/0x310 fs/reiserfs/journal.c:3412
reiserfs_fill_super+0x21be/0x2e60 fs/reiserfs/super.c:2171
REISERFS (device loop1): journal params: device loop1, size 15748, journal first block 18, max trans len 1024, max batch 900, max commit age 0, max trans age 30
mount_bdev+0x2fc/0x3b0 fs/super.c:1158
mount_fs+0xa3/0x318 fs/super.c:1261
vfs_kern_mount.part.0+0x68/0x470 fs/namespace.c:961
vfs_kern_mount fs/namespace.c:951 [inline]
do_new_mount fs/namespace.c:2469 [inline]
do_mount+0x51c/0x2f10 fs/namespace.c:2799
init_special_inode: bogus i_mode (0) for inode loop3:2
REISERFS warning (device loop3): vs-13075 reiserfs_read_locked_inode: dead inode read from disk [1 2 0x0 SD]. This is likely to be race with knfsd. Ignore
ksys_mount+0xcf/0x130 fs/namespace.c:3015
__do_sys_mount fs/namespace.c:3029 [inline]
__se_sys_mount fs/namespace.c:3026 [inline]
__x64_sys_mount+0xba/0x150 fs/namespace.c:3026
do_syscall_64+0xf9/0x670 arch/x86/entry/common.c:293
entry_SYSCALL_64_after_hwframe+0x49/0xbe
init_special_inode: bogus i_mode (0) for inode loop0:2
RIP: 0033:0x44d4fa
Code: b8 08 00 00 00 0f 05 48 3d 01 f0 ff ff 0f 83 ad a0 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 0f 83 8a a0 fb ff c3 66 0f 1f 84 00 00 00 00 00
RSP: 002b:00007fd405c22bf8 EFLAGS: 00000297 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 0000000000000006 RCX: 000000000044d4fa
RDX: 0000000020000000 RSI: 0000000020000100 RDI: 00007fd405c22c10
RBP: 00007fd405c22c10 R08: 00007fd405c22c50 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000297 R12: 0000000000000004
R13: 00007fd405c22c50 R14: 00007fd405c236d0 R15: 0000000000000005
Modules linked in:
REISERFS (device loop3): Using rupasov hash to sort names
---[ end trace 68b783f3b3b09c30 ]---
REISERFS (device loop4): checking transaction log (loop4)
RIP: 0010:check_journal_end fs/reiserfs/journal.c:3643 [inline]
RIP: 0010:do_journal_end+0x3724/0x48c0 fs/reiserfs/journal.c:4040
init_special_inode: bogus i_mode (0) for inode loop4:2
Code: 42 ff 84 ff 0f 0b 48 c7 c7 a0 af 9f 89 e8 44 27 c9 01 e8 2f ff 84 ff 0f 0b 48 c7 c7 60 af 9f 89 e8 31 27 c9 01 e8 1c ff 84 ff <0f> 0b 48 c7 c7 20 af 9f 89 e8 1e 27 c9 01 e8 09 ff 84 ff 0f 0b 48
init_special_inode: bogus i_mode (0) for inode loop2:2
RSP: 0018:ffff88809de37990 EFLAGS: 00010293
REISERFS (device loop1): checking transaction log (loop1)
RAX: ffff8880a3d405c0 RBX: ffffc900068e4000 RCX: ffffffff81ec92c3
REISERFS warning (device loop0): vs-13075 reiserfs_read_locked_inode: dead inode read from disk [1 2 0x0 SD]. This is likely to be race with knfsd. Ignore
RDX: 0000000000000000 RSI: ffffffff81ecc3c4 RDI: 0000000000000007
REISERFS warning (device loop2): vs-13075 reiserfs_read_locked_inode: dead inode read from disk [1 2 0x0 SD]. This is likely to be race with knfsd. Ignore
RBP: ffff8880886082c0 R08: 0000000000000001 R09: 0000000000000000
REISERFS warning (device loop4): vs-13075 reiserfs_read_locked_inode: dead inode read from disk [1 2 0x0 SD]. This is likely to be race with knfsd. Ignore
R10: 0000000000000007 R11: 0000000000000002 R12: 0000000000000000
REISERFS (device loop0): Using rupasov hash to sort names
R13: ffffc900068e4058 R14: ffff88809de37bd0 R15: 0000000000000000
REISERFS (device loop2): Using rupasov hash to sort names
FS: 00007fd405c23700(0000) GS:ffff8880ae200000(0000) knlGS:0000000000000000
init_special_inode: bogus i_mode (0) for inode loop1:2
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
REISERFS (device loop0): using 3.5.x disk format
CR2: 00007fbf115ce000 CR3: 00000000968c1000 CR4: 00000000001406f0
REISERFS (device loop2): using 3.5.x disk format
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
REISERFS warning (device loop1): vs-13075 reiserfs_read_locked_inode: dead inode read from disk [1 2 0x0 SD]. This is likely to be race with knfsd. Ignore
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
REISERFS (device loop1): Using rupasov hash to sort names
REISERFS (device loop3): using 3.5.x disk format
REISERFS (device loop1): using 3.5.x disk format
REISERFS (device loop4): Using rupasov hash to sort names